IMFSourceReaderEx::SetNativeMediaType 方法 (mfreadwrite.h)

设置媒体源上的流的本机媒体类型。

语法

HRESULT SetNativeMediaType(
  [in]  DWORD        dwStreamIndex,
  [in]  IMFMediaType *pMediaType,
  [out] DWORD        *pdwStreamFlags
);

参数

[in] dwStreamIndex

[in] pMediaType

指向媒体类型的 IMFMediaType 接口的指针。

[out] pdwStreamFlags

接收以下标志的零个或多个按位 OR

含义
MF_SOURCE_READERF_ALLEFFECTSREMOVED
已从流中删除所有效果。
MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED
当前输出类型已更改。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
成功。
MF_E_INVALIDREQUEST
请求无效。
MF_E_INVALIDSTREAMNUMBER
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

另请参阅

IMFSourceReaderEx