获得当前转档时间应该使用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的时候,可以用这种方法得到播放的当前位置。
……