var messagesReceivedCount = 0; var videoScreenUID = "{ce0db5cc-0924-4cf4-bd13-f4db259e010e}"; // Get this dynamically from the TV entity instead of hard wired. var localTime = 0; var innited =false; var timeDrift = 0; function gup( name, url ) { if (!url) url = location.href; name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); return results == null ? null : results[1]; } function handleMessages(channel, message, sender) { if (sender === MyAvatar.sessionUUID) { if (channel == "messageTest") { var sourceTime = gup('start',message); // get the time the video should be at if (innited) timeDrift = Math.abs(localTime-sourceTime); localTime++; print("MESS REC'D. TD is "+timeDrift); if (timeDrift<5) return; innited = true; print ("SYNC UPDATE!!");//<5) return; // If within 3 seconds sync, don't bother resyncing. localTime = sourceTime; print('sendIndex/receiveCount::' + message); var newProperties = {sourceUrl:message}; Entities.editEntity(videoScreenUID, newProperties); } } } Messages.messageReceived.connect(handleMessages); Messages.subscribe('messageTest') print('READY TO RECEIVE!!');