问题描述:最近在做android4.0上的视频播放帧同步功能,要求多台设备同时播放同一个视频,且尽量要求每一帧都在同一时间播出。目前分两端:其中windows端为控制端,用于实时监测;android端当前播放视频的位置(getCurrantPosition函数获取)。如监测到两台android端在第10秒发来的瞬时播放位置数据分别为10000ms、10100ms。
假设视频是24帧/秒(大概41ms播放一帧)由此可知,10100-10000=100ms 理论是相差了2帧多一点,此时通过windows端发送校准命令让两台android播放端调用mediaplayer中的seekto(10000)函数统一跳转到当前视频第10000ms毫秒的位置,但seekto跳转的位置误差很大,两边seekto后重新获取当前位置分别总是存在误差,
有时候两台android在seekto后获取的当前位置分别为10000、10100,此时应该是跳转失败的
有时候两台android在seekto后获取的当前位置分别为10000、10000,此时应该是成功的。
不知道各位在编程时有没碰到这样的问题??或者有什么更好的同步方案。
假设视频是24帧/秒(大概41ms播放一帧)由此可知,10100-10000=100ms 理论是相差了2帧多一点,此时通过windows端发送校准命令让两台android播放端调用mediaplayer中的seekto(10000)函数统一跳转到当前视频第10000ms毫秒的位置,但seekto跳转的位置误差很大,两边seekto后重新获取当前位置分别总是存在误差,
有时候两台android在seekto后获取的当前位置分别为10000、10100,此时应该是跳转失败的
有时候两台android在seekto后获取的当前位置分别为10000、10000,此时应该是成功的。
不知道各位在编程时有没碰到这样的问题??或者有什么更好的同步方案。