【问题标题】:Media Synchronization over network - Master/Slave negotiation网络媒体同步 - 主/从协商
【发布时间】:2019-10-09 12:03:10
【问题描述】:

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

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

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

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

TL;DR;

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

我已经尝试过以下协议:

  • 启动时,客户端发送 PING
  • master 会用 PONG 回复每个 PING 消息
  • 如果 2 秒内没有收到 PONG,则客户端变为 MASTER

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

【问题讨论】:

标签: c# synchronization udp directshow multicast


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多