I am currently working on a multiplayer collaboration tool for VR+PC. One of the use-cases is playing videos for everyone who is connected. They can also control the video using basic media player functions like Play/pause, seek, etc.
Now my problem is, that I can’t keep the videos in sync for everyone across the network and can’t find any replication settings for the Media Players.
I did this by thinking of the server as the timekeeper. I made a replicated variable of the elapsed time on the server and then I RPC that to the clients on a given interval. If a client drifts too behind/ahead in time, the server will attempt to re-sync them, by doing a seek on the client to match the server’s time.
However ultimately I found it’s nearly impossible to keep everyone in sync and have a fluid experience. Constantly trying to correct sync can cause stutters etc. I just let everyone know that their video playback may fall out of sync and just live with it. I then ask the group if the video is finished to get confirmation before moving on.
Thanks for the answer! I think I will do something similar. Only sync up everyone if some kind of media player command is executed like play,pause,seek. And then work with a disclaimer, that stuff might run out of sync.
Hey, can you tell me how you implemented the play/pause function in the video? I have a 360-degree video that I’m trying to play and pause by using hand controllers of VR but not able to. Any help would be appreciated!!
However ultimately I found it’s nearly impossible to keep everyone in sync and have a fluid experience. Constantly trying to correct sync can cause stutters etc. I just let everyone know that their video playback may fall out of sync and just live with it. I then ask the group if the video is finished to get confirmation before moving on.