Partager via


Procédure d’ajout d’effets audio ou vidéo

[La fonctionnalité associée à cette page, MFPlay, est une fonctionnalité héritée. Elle a été remplacée par MediaPlayer et IMFMediaEngine. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Lorsque cela est possible, Microsoft recommande vivement l'utilisation par le nouveau code de MediaPlayer et IMFMediaEngine au lieu de DirectShow. Microsoft recommande, si possible, la réécriture du code existant qui utilise les API héritées pour être à jour avec les nouvelles API.]

Cette rubrique explique comment utiliser des effets audio/vidéo avec MFPlay.

Pour utiliser un effet avec MFPlay, l’effet doit être implémenté en tant que transformation Media Foundation (MFT). Pour plus d’informations, consultez la rubrique « Transformations Media Foundation ».

Procédure d’ajout d’effet audio ou vidéo

  1. Créez une instance de la MFT qui implémente l’effet.
  2. Appelez IMFPMediaPlayer::InsertEffect.

Appelez InsertEffect avant d’ouvrir le fichier multimédia pour la lecture. MFPlay définit automatiquement si l’effet est un effet vidéo ou un effet audio.

La méthode InsertEffect accepte également un paramètre booléen qui détermine si l’effet est facultatif ou obligatoire. Si MFPlay ne peut pas ajouter d’effet requis (par exemple, en raison de l'incompatibilité du format de flux), une erreur de lecture est générée. En règle générale, il est préférable de définir un effet comme facultatif.

MFPlay utilisera l’effet pour toutes les lectures suivantes. Pour supprimer l'effet, appelez IMFPMediaPlayer::RemoveEffect ou 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;
}

Spécifications

MFPlay nécessite Windows 7.

Utilisation de MFPlay pour la lecture audio/vidéo