首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

directshow 断点续播能卡住

2013-11-12 
directshow 断点续播会卡住用ds开发的播放器,播放时需要从上次停止播放的位置开始播放。如果从头开始播放的

directshow 断点续播会卡住
用ds开发的播放器,播放时需要从上次停止播放的位置开始播放。如果从头开始播放的话,是不会卡住的,但是一旦从上次的位置播放,有时候显示画面后就会卡住不动,有时候又能正常播放。代码片段如下:

filter已连接成功,准备开始播放
if(m_nStartPosition != 0)
{

        LONGLONG llTime = LONGLONG(m_TimeFormat == TIME_FORMAT_MEDIA_TIME ? m_nStartPosition * double(UNITS) : m_nStartPosition );
hr = m_pMs->SetPositions(&llTime, AM_SEEKING_AbsolutePositioning, NULL, 0);
}

hr = m_pMC->Run();

也就是说在run之前先调用SetPositiong来定位播放时间。所播放的影片都是1M 多的大码流影片,以前播小码流的文件好像没有这种现象。应该如何优化好呢? directshow 断点续播
[解决办法]


m_pAllocator->GetBuffer(ppSample,pStartTime,pEndTime,dwFlags);
//也就是说,获取不了空闲的sample,一直在等待空闲sample的析放。
//那是否可以处理下等到有空闲了再调用这个接口呢?

热点排行