IMFSourceReaderEx::SetNativeMediaType 方法 (mfreadwrite.h)
设置媒体源上的流的本机媒体类型。
语法
HRESULT SetNativeMediaType(
[in] DWORD dwStreamIndex,
[in] IMFMediaType *pMediaType,
[out] DWORD *pdwStreamFlags
);
参数
[in] dwStreamIndex
[in] pMediaType
指向媒体类型的 IMFMediaType 接口的指针。
[out] pdwStreamFlags
接收以下标志的零个或多个按位 OR 。
值 | 含义 |
---|---|
|
已从流中删除所有效果。 |
|
当前输出类型已更改。 |
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
请求无效。 |
|
dwStreamIndex 参数无效。 |
注解
此方法设置媒体源生成的输出类型。 与 IMFSourceReader::SetCurrentMediaType 方法不同,此方法不插入任何解码器、视频处理器或其他转换。 媒体源必须本机支持指定的媒体类型。 若要从媒体源获取受支持类型的列表,请调用 IMFSourceReader::GetNativeMediaType。
在异步模式下,如果示例请求处于挂起状态,此方法将失败。 在这种情况下,请等待 OnReadSample 回调被调用,然后再调用 方法。 有关在异步模式下使用源读取器的详细信息,请参阅 IMFSourceReader::ReadSample。
此方法可以触发流的输出格式更改。 如果是,则 pdwStreamFlags 参数中返回MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED标志。 方法还可能导致源读取器删除 由 IMFSourceReaderEx::AddTransformForStream 方法添加的任何效果。 如果发生这种情况,将在 pdwStreamFlags 中返回MF_SOURCE_READERF_ALLEFFECTSREMOVED标志。
此方法适用于音频和视频捕获设备,因为设备可能支持多种输出格式。 此方法使应用程序能够在添加解码器和其他转换之前选择设备格式。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfreadwrite.h |