首页 > 解决方案 > 网络媒体同步 - 主/从协商

问题描述

我想在多个设备上同步媒体播放。所有播放器都将媒体文件存储在本地,因此不应涉及流式传输。

我当前的实现是使用 UDP 多播,其中 MASTER 发送其当前播放位置,SLAVE 检查其自己的位置是否在可接受的范围内(+/- 50ms)。如果没有,从机调整播放速度(0.9x 或 1.1x)以赶上,直到它再次在范围内。如果距离太远,它会寻求 MASTER 位置。

这很好用,而且我还有一个使用 HTML5 视频和通过 WebSockets 同步的概念证明。

主/从角色现在在客户端的配置中手动设置,但我希望客户端自动协商他们各自的角色。

TL;博士;

我怎样才能对哪个客户端是主客户端进行一些自动协商?如果主设备断开连接,所有其他客户端应继续播放,其中一个应承担主设备角色并开始发送其播放位置。

我已经尝试过以下协议:

此解决方案的问题是多个客户端可能同时承担 MASTER 角色。

标签: c#synchronizationudpdirectshowmulticast

解决方案


发送 PING 时,包含一个随机生成的整数。使用 PONG 回复时,请包含该号码。决定成为主人后,重复这三个步骤,但如果有人回复的 PONG 低于你,则改为成为奴隶。


推荐阅读