IMFSourceReader::SetStreamSelection 方法 (mfreadwrite.h)
选择或取消选择一个或多个流。
语法
HRESULT SetStreamSelection(
[in] DWORD dwStreamIndex,
[in] BOOL fSelected
);
参数
[in] dwStreamIndex
要设置的流。 该值可以是以下任意值。
值 | 含义 |
---|---|
|
流的从零开始的索引。 |
|
第一个视频流。 |
|
第一个音频流。 |
|
所有流。 |
[in] fSelected
指定 TRUE 以选择流,指定 FALSE 以取消选择流。 如果取消选择流,则不会生成数据。
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
此方法有两种常见用途:
- 更改默认流选择。 某些媒体文件包含同一类型的多个流。 例如,文件可能包含多种语言的音频流。 可以使用此方法更改所选的流。 若要获取有关每个流的信息,请调用 IMFSourceReader::GetPresentationAttribute 或 IMFSourceReader::GetNativeMediaType。
- 如果不需要其中一个流中的数据,最好取消选择该流。 如果选择流,则媒体源可能会保留一个包含未读数据的队列,并且队列可能会无限期增长,从而消耗内存。
如果取消选择某个流, IMFSourceReader::ReadSample 方法将返回该流的 MF_E_INVALIDREQUEST 。 其他 IMFSourceReader 方法对取消选择的流有效。
Stream选择不会影响源读取器在内存中加载或卸载解码器的方式。 具体而言,取消选择流不会强制源读取器卸载该流的解码器。
如果安装了适用于 Windows Vista 的平台更新补充,则此接口在 Windows Vista 上可用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfreadwrite.h |