如何添加音频或视频效果

[MFPlay 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 ]

本主题介绍如何通过 MFPlay 使用音频/视频效果。

若要将效果与 MFPlay 一起使用,该效果必须实现为媒体基础转换 (MFT) 。 有关详细信息,请参阅 媒体基础转换

添加音频或视频效果

  1. 创建实现效果的 MFT 实例。
  2. 调用 IMFPMediaPlayer::InsertEffect

在打开媒体文件进行播放之前调用 InsertEffect 。 MFPlay 自动确定该效果是视频效果还是音频效果。

InsertEffect 方法还采用布尔参数,该参数指定效果是可选的还是必需的。 例如,如果 MFPlay 无法添加所需的效果 (,因为流格式) 不兼容,则会发生播放错误。 在大多数情况下,最好将效果设置为可选效果。

MFPlay 继续使用该效果进行所有后续播放。 若要删除该效果,请调用 IMFPMediaPlayer::RemoveEffectIMFPMediaPlayer::RemoveAllEffects

HRESULT AddPlaybackEffect(REFGUID clsid, IMFPMediaPlayer *pPlayer)
{
    IMFTransform *pMFT = NULL;

    HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pMFT));

    if (SUCCEEDED(hr))
    {
        hr = pPlayer->InsertEffect(pMFT, TRUE); // Set as optional.
    }

    SafeRelease(&pMFT);
    return hr;
}

要求

MFPlay 需要 Windows 7。

使用 MFPlay 播放音频/视频