loading...
 
 
 
IMediaSeeking时间精度问题
[ 2006-12-29 9:51:00 | By: Tiger ]
 
获得当前转档时间应该使用IMediaSeeking接口中的GetCurrentPosition.但是,从GraphBuilder去QueryInterface得到的IMediaSeeking只能作用于playback,而write file时取得的时间是不准确的。
现在,从写文件的Filter,如AVI Mux,WMV Mux,来获得IMediaSeeking,用它去取当前时间,这样就正确了。不过一些write Filter,对IMediaSeeking支持的不够好,需要再加上一些额外的工作。
简单示例:
m_pGraphBuilder->QueryInterface(IID_IMediaSeeking, (void**) &m_pIMediaSeeking);
m_pIMediaSeeking->GetCurrentPosition();
在正常Playback的时候,可以用这种方法得到播放的当前位置。但在写文件的时候,这种方法得到的时候不准确。
应该从Mux Filter上得。
例:
IBaseFilter        *m_pIBFMux ;
m_pICaptureGraphBuilder2->SetOutputFileName(&MEDIASUBTYPE_Asf,
            wOutName, &m_pIBFMux, &m_pIFileSinkFilter);
m_pIBFMux->QueryInterface(IID_IMediaSeeking, (void**) &m_pIMediaSeekingMux);
m_pIMediaSeekingMux->GetCurrentPosition();

在DES编辑时也经常遇到这种情况

 

发表评论:

    大名:
    密码: (游客无须输入密码)
    主页:
    标题:
    loading...
 
个 人 公 告
loading...
我 的 相 册
时 间 记 忆
loading...
最 新 评 论
loading...
最 新 日 志
loading...
最 新 留 言
loading...
我 的 朋 友
loading...
我 的 圈 子
loading...
搜 索
博 客 信 息
loading...
友 情 连 接