织梦CMS - 轻松建站从此开始!

罗索

我的音视同步控制实现

jackyhwei 发布于 2011-12-17 11:46 点击:次 
采用外部时钟进行控制,时钟以计数的形式增加,播放线程中使用GetTime()-m_dwStartTime来表示播放时间。
TAG:

同步播放时的几种控制处理:
采用外部时钟进行控制,时钟以计数的形式增加,播放线程中使用GetTime()-m_dwStartTime来表示播放时间。

两个时间:m_fRefClock, m_dwStartTime(播放时获取的起始时间) = GetTime()
    正常播放:根据外部时钟,比较音,视频的时间戳决定音视频的播放
    快进播放:把当前的视频播放时刻保存到m_fRefClock,对于m_dwStartTime重置。在快进后的播放中,时钟需加上m_fRefClock
    快放播放:重置m_dwStartTime,对于重置后获取的时间差进行处理,如*2,需要对(GetTime()-m_dwStartTime)*2,然后加上

m_fRefClock再与音视频的时间戳进行比较。

DWORD GetTime()
{
 struct timeval t;
 struct _timeb timebuffer;
 _ftime( &timebuffer );
 t.tv_sec  = timebuffer.time;  
 t.tv_usec = timebuffer.millitm;  //ms
 return (t.tv_sec * 1000 + t.tv_usec);
}

(rightorwrong)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201112/15493.html]
本文出处:CSDN博客 作者:rightorwrong 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容