如何添加音频或视频效果
[MFPlay 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 ]
本主题介绍如何通过 MFPlay 使用音频/视频效果。
若要将效果与 MFPlay 一起使用,该效果必须实现为媒体基础转换 (MFT) 。 有关详细信息,请参阅 媒体基础转换。
添加音频或视频效果
- 创建实现效果的 MFT 实例。
- 调用 IMFPMediaPlayer::InsertEffect。
在打开媒体文件进行播放之前调用 InsertEffect 。 MFPlay 自动确定该效果是视频效果还是音频效果。
InsertEffect 方法还采用布尔参数,该参数指定效果是可选的还是必需的。 例如,如果 MFPlay 无法添加所需的效果 (,因为流格式) 不兼容,则会发生播放错误。 在大多数情况下,最好将效果设置为可选效果。
MFPlay 继续使用该效果进行所有后续播放。 若要删除该效果,请调用 IMFPMediaPlayer::RemoveEffect 或 IMFPMediaPlayer::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。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈