首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

网络播放同步有关问题

2012-02-06 
网络播放同步问题我剩的分实在不多了 ...就21分了...客户机上有一个电影需要显示(一共N帧,0---N-1帧) 一

网络播放同步问题
我剩的分实在不多了 ...就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优化到在规定时间内处理完一帧,而又不想丢帧的话,就只能重新处理影片,降低其帧率了。

热点排行