如何新增音訊或視訊效果
[與此頁面 MFPlay 相關聯的功能是舊版功能。 它已被 MediaPlayer 和 IMFMediaEngine 取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaPlayer 和 IMFMediaEngine,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
本主題描述如何搭配 MFPlay 使用音訊/視訊效果。
要在 MFPlay 中使用效果,必須將此效果實作為媒體基礎轉換器(MFT)。 如需詳細資訊,請參閱 媒體基礎轉換。
若要新增音訊或視訊效果
- 建立一個用來實現該效果的 MFT 實例。
- 呼叫 IMFPMediaPlayer::InsertEffect。
開啟媒體檔案以供播放之前,請先呼叫 InsertEffect。 MFPlay 會自動判斷效果是視訊效果還是音訊效果。
InsertEffect 方法也會採用 Boolean 參數,指定效果是選擇性還是必要。 如果 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。
相關主題