查询查找功能
Microsoft® DirectShow ®支持通过 IMediaSeeking 接口进行查找。 筛选器Graph管理器公开此接口,但查找功能始终由图形中的筛选器实现。
无法查找某些数据。 例如,无法从相机中查找实时视频流。 但是,如果某个流是可寻的,则有多种类型寻求它可能支持。 其中包括:
- 在流中寻求任意位置。
- 检索流的持续时间。
- 检索流中的当前位置。
- 反向播放。
IMediaSeeking 接口定义一组标志,AM_SEEKING_SEEKING_CAPABILITIES,用于描述可能寻求的功能。 若要检索流的功能,请调用 IMediaSeeking::GetCapabilities 方法。 该方法返回标志的按位组合。 应用程序可以使用按位 AND) 运算符 (测试它们&。 例如,以下代码检查图形是否可以查找任意位置:
DWORD dwCap = 0;
HRESULT hr = pSeek->GetCapabilities(&dwCap);
if (AM_SEEKING_CanSeekAbsolute & dwCap)
{
// Graph can seek to absolute positions.
}