Freigeben über


Hinzufügen von Audio- oder Videoeffekten

[Bei dem auf dieser Seite gezeigten Feature MFPlay handelt es sich um ein Legacyfeature. Es wurde durch MediaPlayer und IMFMediaEngine abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass in neuem Code wenn möglich MediaPlayer und IMFMediaEngine anstelle von DirectShow verwendet wird. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, wenn möglich umgeschrieben wird, um die neuen APIs zu verwenden.]

In diesem Thema wird die Verwendung von Audio-/Videoeffekten mit MFPlay beschrieben.

Um einen Effekt mit MFPlay zu verwenden, muss der Effekt als Media Foundation-Transformation (MFT) implementiert werden. Weitere Informationen finden Sie unter Media Foundation-Transformationen.

Hinzufügen eines Audio- oder Videoeffekts

  1. Erstellen Sie eine Instanz des MFT, die den Effekt implementiert.
  2. Rufen Sie IMFPMediaPlayer::InsertEffect auf.

Rufen Sie InsertEffect auf, bevor Sie die Mediendatei für die Wiedergabe öffnen. MFPlay ermittelt automatisch, ob es sich um einen Videoeffekt oder einen Audioeffekt handelt.

Die InsertEffect-Methode verwendet auch einen booleschen Parameter, der angibt, ob der Effekt optional oder erforderlich ist. Wenn MFPlay einen erforderlichen Effekt nicht hinzufügen kann (z. B. weil das Datenstromformat nicht kompatibel ist), tritt ein Wiedergabefehler auf. In den meisten Fällen ist es besser, einen Effekt als optional festzulegen.

MFPlay verwendet den Effekt auch für alle nachfolgenden Wiedergaben. Zum Entfernen des Effekts rufen Sie IMFPMediaPlayer::RemoveEffect oder IMFPMediaPlayer::RemoveAllEffects auf.

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;
}

Anforderungen

MFPlay erfordert Windows 7.

Verwenden von MFPlay für die Audio-/Videowiedergabe