public void HandleVideoSyncAsset(VideoSyncAsset videoSyncAsset, Sender sender) { UdpVideoSync udpVideoSync; if (_udpVideoSyncDict.TryGetValue(videoSyncAsset.Asset_Id, out udpVideoSync)) { udpVideoSync.SyncVideo(videoSyncAsset); } }
private void Update() { if (_configMgr.applicationType == CmdConfigManager.AppType.WALL) { // Sending the sync data via UDP: VideoSyncAsset videoSyncAsset = new VideoSyncAsset(); videoSyncAsset.Asset_Id = networkId; videoSyncAsset.TargetSyncTime = _videoPlugin.GetCurrentPlayTime() + (_configMgr.networkFrameDelay * Time.smoothDeltaTime); udpManager.SenderToFloor.AddMessage(JsonUtility.ToJson(videoSyncAsset)); } }
private void CallReceivedVideoSyncMessage(VideoSyncAsset videoSyncAsset, UdpReceiver.ReceivedMessage.Sender sender) { if (ReceivedVideoSyncMessage != null) { foreach (ReceivedVideoSyncMessageDelegated Callack in ReceivedVideoSyncMessage.GetInvocationList()) { try { Callack(videoSyncAsset, sender); } catch (System.Exception ex) { Debug.LogException(ex); } } } }
protected override void ReceivedEventMessage(string jsonString, uint eventIdentifier, UdpReceiver.ReceivedMessage.Sender sender) { switch (eventIdentifier) { case EventIdentifierVideo.VIDEO_SYNC: VideoSyncAsset videoSyncAsset = JsonUtility.FromJson <VideoSyncAsset>(jsonString); CallReceivedVideoSyncMessage(videoSyncAsset, sender); break; case EventIdentifierVideo.VIDEO_START_PAUSE: VideoStartPauseAsset videoStartPauseAsset = JsonUtility.FromJson <VideoStartPauseAsset>(jsonString); CallReceivedVideoStartPauseMessage(videoStartPauseAsset, sender); break; case EventIdentifierVideo.VIDEO_LOAD: VideoLoadAsset videoLoadAsset = JsonUtility.FromJson <VideoLoadAsset>(jsonString); CallReceivedVideoLoadMessage(videoLoadAsset, sender); break; default: base.ReceivedEventMessage(jsonString, eventIdentifier, sender); break; } }
// This is called from the FloorManager, that receives the sent VideoSyncAsset Messages. public void SyncVideo(VideoSyncAsset videoSyncAsset) { _videoPlugin.SetTargetPlayTime(videoSyncAsset.TargetSyncTime); }