IMFPMediaPlayer::InsertEffect-Methode (mfplay.h)

Wichtig Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden. Anwendungen sollten die Mediensitzung für die Wiedergabe verwenden.
 

Wendet einen Audio- oder Videoeffekt auf die Wiedergabe an.

Syntax

HRESULT InsertEffect(
  [in] IUnknown *pEffect,
  [in] BOOL     fOptional
);

Parameter

[in] pEffect

Zeiger auf die IUnknown-Schnittstelle für eine der folgenden:

[in] fOptional

Gibt an, ob der Effekt optional ist.

Wert Bedeutung
STIMMT
Der Effekt ist optional. Wenn das MFPlay-Playerobjekt den Effekt nicht hinzufügen kann, ignoriert es den Effekt und setzt die Wiedergabe fort.
FALSE
Wenn das MFPlay-Playerobjekt den Effekt nicht hinzufügen kann, tritt ein Wiedergabefehler auf.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode Beschreibung
S_OK
Die Methode wurde erfolgreich ausgeführt.
MF_E_INVALIDINDEX
Dieser Effekt wurde bereits hinzugefügt.

Hinweise

Das im pEffect-Parameter angegebene Objekt kann entweder einen Videoeffekt oder einen Audioeffekt implementieren. Der Effekt wird auf alle Medienelemente angewendet, die nach dem Aufruf der Methode festgelegt wurden. Sie wird nicht auf das aktuelle Medienelement angewendet.

Für jedes Medienelement wird der Effekt auf den ersten ausgewählten Stream des übereinstimmenden Typs (Audio oder Video) angewendet. Wenn ein Medienelement über zwei ausgewählte Datenströme desselben Typs verfügt, empfängt der zweite Stream den Effekt nicht. Der Effekt wird ignoriert, wenn das Medienelement keinen Stream enthält, der dem Effekttyp entspricht. Wenn Sie beispielsweise einen Videoeffekt festlegen und eine Datei wiedergeben, die nur Audio enthält, wird der Videoeffekt ignoriert, obwohl kein Fehler ausgelöst wird.

Der Effekt wird auf alle nachfolgenden Medienelemente angewendet, bis die Anwendung den Effekt entfernt. Um einen Effekt zu entfernen, rufen Sie IMFPMediaPlayer::RemoveEffect oder IMFPMediaPlayer::RemoveAllEffects auf.

Wenn Sie mehrere Effekte desselben Typs (Audio oder Video) festlegen, werden diese in der gleichen Reihenfolge angewendet, in der Sie InsertEffect aufrufen.

Optimierungen der Remotewiedergabe

Audio- und Videoeffekte sind möglicherweise nicht kompatibel mit Optimierungen, die für die Remotewiedergabe verwendet werden. Die folgenden Hinweise gelten nur für Audio- oder Videoeffekte, die tatsächlich während der Wiedergabe verwendet werden:
  • Wenn Sie einen Audio- oder Videoeffekt als erforderlich markieren, indem Sie fOptional auf FALSE festlegen, deaktiviert MFPlay Remotewiedergabeoptimierungen.
  • Andernfalls kann MFPlay die Effekte löschen, wenn alle Audio-/Videoeffekte als optional markiert sind, um Remotewiedergabeoptimierungen zu aktivieren.
Mit anderen Worten: Erforderliche Effekte haben Vorrang vor Remoteoptimierungen, optionale Effekte jedoch nicht.

Remoteoptimierungen können aus anderen Gründen deaktiviert werden. Sie sind beispielsweise deaktiviert, wenn Sie beim Erstellen des Playerobjekts die Option MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION festlegen. In diesem Fall versucht MFPlay, alle optionalen Effekte einzufügen.

Nicht-Audio- und Videoeffekte wirken sich nicht auf Remoteoptimierungen aus. Wenn Sie einen erforderlichen Effekt einfügen, die Quelle aber keine Datenströme dieses Typs enthält, werden Remoteoptimierungen nicht deaktiviert.

Beispiele

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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mfplay.h

Weitere Informationen

Hinzufügen von Audio- oder Videoeffekten

IMFPMediaPlayer

Verwenden von MFPlay für die Audio-/Videowiedergabe