Bagikan melalui


Cara Menambahkan Efek Audio atau Video

[Fitur yang terkait dengan halaman ini, MFPlay, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer dan IMFMediaEngine. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer dan IMFMediaEngine alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Topik ini menjelaskan cara menggunakan efek audio/video dengan MFPlay.

Untuk menggunakan efek dengan MFPlay, efeknya harus diimplementasikan sebagai transformasi Media Foundation (MFT). Untuk informasi selengkapnya, lihat Transformasi Media Foundation.

Untuk Menambahkan Efek Audio atau Video

  1. Buat instans MFT yang mengimplementasikan efeknya.
  2. Panggil IMFPMediaPlayer::InsertEffect.

Panggil InsertEffect sebelum Anda membuka file media untuk pemutaran. MFPlay secara otomatis menentukan apakah efeknya adalah efek video atau efek audio.

Metode InsertEffect juga mengambil parameter Boolean yang menentukan apakah efeknya opsional atau diperlukan. Jika MFPlay tidak dapat menambahkan efek yang diperlukan (misalnya, karena format aliran tidak kompatibel), kesalahan pemutaran terjadi. Dalam kebanyakan kasus, lebih baik menetapkan efek sebagai opsional.

MFPlay terus menggunakan efek untuk semua pemutaran berikutnya. Untuk menghapus efeknya, panggil IMFPMediaPlayer::RemoveEffect atau 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;
}

Persyaratan

MFPlay memerlukan Windows 7.

Menggunakan MFPlay untuk Pemutaran Audio/Video