Condividi tramite


Come aggiungere effetti audio o video

[La funzionalità associata a questa pagina, MFPlay, è una funzionalità legacy. È stato sostituito da MediaPlayer e IMFMediaEngine. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer e IMFMediaEngine invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Questo argomento descrive come usare effetti audio/video con MFPlay.

Per usare un effetto con MFPlay, l'effetto deve essere implementato come trasformazione Media Foundation (MFT). Per altre informazioni, vedere Trasformazioni di Media Foundation.

Per aggiungere un effetto audio o video

  1. Creare un'istanza di MFT che implementa l'effetto.
  2. Chiama IMFPMediaPlayer::InsertEffect.

Chiama InsertEffect prima di aprire il file multimediale per la riproduzione. MFPlay determina automaticamente se l'effetto è un effetto video o audio.

Il metodo InsertEffect accetta anche un parametro booleano che specifica se l'effetto è facoltativo o obbligatorio. Se MFPlay non può aggiungere un effetto obbligatorio (ad esempio, perché il formato del flusso è incompatibile), si verifica un errore di riproduzione. Nella maggior parte dei casi, è preferibile impostare un effetto come facoltativo.

MFPlay continua a usare l'effetto per tutta la riproduzione successiva. Per rimuovere l'effetto, chiama IMFPMediaPlayer::RemoveEffect o 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;
}

Requisiti

MFPlay richiede Windows 7.

Uso di MFPlay per la riproduzione audio/video