设置播放速率
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
若要更改播放速率,请调用 IMediaSeeking::SetRate 方法。 将新速率指定为原始速率的一小部分。 例如,若要以两倍正常速度播放,请使用以下命令:
pSeek->SetRate(2.0)
大于 1 的速率比正常速率快。 介于 0 和 1 之间的速率比正常速率慢。 负速率定义为向后播放,但实际上大多数筛选器不支持它。 目前,标准 DirectShow 筛选器都不支持反向播放。
无论播放速率如何,当前位置和停止位置始终相对于原始源表示。 例如,如果源文件在正常播放速率下长度为 20 秒,则将当前位置设置为 10 秒将查找到文件的中间位置。 如果播放速率为 2.0,则停止位置为 20 秒,并且你查找到 10 秒的位置,则文件将实时播放 5 秒:10 秒,是正常播放速度的两倍。 在 2.0 的播放速率下,当前位置以参考时钟速率的两倍增加。