【发布时间】:2011-03-11 07:22:51
【问题描述】:
我制作了一个媒体播放器,它基本上可以播放通过文本文件安排的任何内容。播放器还可以在多台机器(PC)上播放完全相同的剪辑。问题是同步。相同的视频开始在每台机器上播放,但它们在大约 400 毫秒后播放,这看起来很糟糕,如果有声音那就更糟了。
我现在做的是:
一台机器被设置为主机,所有其他机器被设置为从机。主人决定播放什么项目。它等待来自每个从站的消息,一旦所有从站都连接(或超时后),它会广播需要播放的文件的项目 ID。然后所有机器开始播放该文件。
我也尝试过:
我认为文件加载时间可能是同步不匹配的主要驱动因素,因此我更改了代码以执行以下操作。
主人仍然决定播放什么文件。它等待来自每个从属设备的连接消息(或超时)并传输要播放的文件的项目 ID。所有机器都开始播放该文件,但立即暂停。然后主机再次等待来自每个从机的就绪消息。一旦所有从机响应,主机就会向所有从机发送播放消息。然后所有机器继续该文件。
不幸的是,这并没有改善问题。我现在很确定同步不匹配是由于网络延迟造成的。我该如何弥补这一点?或者也许确定每个从站的延迟?
所有网络通讯都是用winsock完成的。
非常感谢任何想法或想法。
【问题讨论】:
标签: c++ networking video unmanaged