2个客户端没有操作的时候,要求播放的视频同步,如果操作,视频停止播放,操作完后,要求视频还是同步,请问高手能不能给点实现的思路?
本人打算使用vb的WindowsMediaPlayer控件来播放视频,怎么能使他们同步呢?(WindowsMediaPlayer1.Controls.currentPosition这个东西可不可以通过winsock来相互传递?如果能的话怎么传?)

解决方案 »

  1.   

    你自己要有一套协议来通讯.要有个谁在网络上吼:进度拖到XXXXX,然后所有其它客户端就根据这个指令设置进度到XXXXX.......既然是自己写C/S,肯定要订一套协议啊.比如:http://www.m5home.com/blog/article.asp?id=169
      

  2.   

    首先必须保证两个客户端时间都与服务器同步的(用 shell "cmd.exe /c net time servername /set");
    然后任何一边的客户端有操作,都要把操作信息{动作,时间,播放进度=MMControl1.Length}发送到其它客户端;
    其它客户端收到操作信息后判断
      如果 动作=暂停,那么停止播放,并且将当前进度与播放进度一致
      如果 动作=播放,那么本机当前时间和操作发生的时间可能存在一定的差值,设 当前进度=播放进度+时间差,开始播放
    又:取当前时间用 Timer() 函数,是带小数的秒,足够用来调整进度了。