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);
 }