设置 WMA 编码器的输出类型

若要为 Windows Media Audio (WMA) 编码器创建有效的输出类型,必须具备以下信息:

  • 表示编码的 WMA 格式的音频子类型。 请参阅 音频子类型 GUID

  • 要对编码器设置的配置属性。

    配置属性记录在 Windows Media 音频和视频编解码器和 DSP API 文档中。 有关详细信息,请参阅编码属性中的“音频流 属性”。

Windows Vista 或更高版本

若要获取编码器的有效输出类型,请执行以下步骤。

  1. 使用 MFTEnumMFTEnumEx 函数创建编码器的实例。
  2. 查询 IPropertyStore 接口的编码器。
  3. 使用 IPropertyStore 接口配置编码器。
  4. 通过在循环中调用 IMFTransform::GetOutputAvailableType 来检索支持的输出类型,直到编码器返回 MF_E_NO_MORE_TYPES 并选择目标媒体类型。 I
  5. 调用 IMFTransform::SetOutputType 以在编码器上设置压缩媒体类型。

Windows 7

为了在 Windows 7 中获取编码器的有效输出类型,Media Foundation 提供了 MFTranscodeGetAudioOutputAvailableTypes 函数。 应用程序必须传递必需的音频子类型,该子类型重新表示编码的 WMA 和编码属性。 属性是必需的,因为编码器根据模式集更改支持的输出类型。

 

如果调用成功,应用程序会在 IMFCollection 对象中接收支持的输出媒体类型的 IUnknown 指针列表。 若要设置输出媒体类型,请找到与目标类型匹配的媒体类型,并调用 IMFTransform::SetOutputType 在编码器上设置压缩媒体类型。

实例化编码器 MFT

Windows Media 编码器