网络播放同步问题
我剩的分实在不多了 ...就21分了...
客户机上有一个电影需要显示(一共N帧,0---N-1帧) ;
一开始客户机上int step=0;int crruntStep =0;
客户机有一函数Display(step);//显示索引为step的帧
客户机还有一函数updata(){ step=crruntStep }
while(1)
{
//这里是客户机里单次循环执行顺序
updata();
Display(step);
}
服务器每发给客户机一个Add包的话 就引发客户机crruntStep++;
可是Display是很耗时的在一次Display过程中有可能收到多个Add消息
也就是意味着一次Display完后在updata里更新数据时step并不是仅+了一次1,而很有可能是多次.
现在Display已经优化过了。。。
该如何解决不同步的问题呢 ?
[解决办法]
假如影片为PAL制25帧,则客户机40毫秒内必须完成一帧的Display,否则跳帧现象不可避免,即使客户机和服务器程序存在协商机制,服务器延迟发出Add包,可解决了跳帧却又要面临慢动作了。
所以如果无法将Display优化到在规定时间内处理完一帧,而又不想丢帧的话,就只能重新处理影片,降低其帧率了。