使用手动流选择
[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
使用读取器对象传送未压缩的示例时,只能按输出编号传递这些样本。 对于互斥流,这意味着一次只能从互斥中的一个流接收样本。 选择要传递的互斥流的过程称为流选择。
对于比特率互斥,读取器根据播放时主机的条件自动进行流选择。 对于其他类型的互斥,读取器将提供默认流中的示例,除非你自己手动选择其他流。 在某些情况下,你可能想要从比特率互斥中手动选择流。
对于整个文件,手动流选择是打开还是关闭。 如果文件包含比特率互斥和其他一些互斥类型,则必须手动选择基于比特率的流。
若要手动选择互斥流,必须执行以下步骤。
- 通过调用 IWMReader::QueryInterface 检索指向读取器对象的 IWMReaderAdvanced 接口的指针。
- 通过调用 IWMReaderAdvanced::SetManualStreamSelection 启用手动流选择。
- 若要确定是否选择了特定流,请调用 IWMReaderAdvanced::GetStreamSelected。 必须将指针传递到 WMT_STREAM_SELECTION 枚举类型的变量。 调用返回时,变量中的值将描述流的当前选择类型。
- 若要选择流,请调用 IWMReaderAdvanced::SetStreamsSelected。 使用此方法可以同时指定多个流进行同步流切换。
相关主题