Cómo agregar efectos de audio o vídeo
[La característica asociada con esta página, MFPlay, es una característica heredada. Se ha reemplazado por MediaPlayer y IMFMediaEngine. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda que el nuevo código use MediaPlayer y IMFMediaEngine en vez de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible].
En este tema se explica cómo usar efectos de audio y vídeo con MFPlay.
Para usar un efecto con MFPlay, el efecto debe implementarse como una transformación de Media Foundation (MFT). Para obtener más información, consulte Transformaciones de Media Foundation.
Cómo agregar un efecto de audio o vídeo
- Cree una instancia de MFT que implemente el efecto.
- Llame a IMFPMediaPlayer::InsertEffect.
Llame a InsertEffect antes de abrir el archivo multimedia para reproducirlo. MFPlay determina automáticamente si el efecto es un efecto de vídeo o un efecto de audio.
El método InsertEffect también toma un parámetro booleano que indica si el efecto es opcional o necesario. Si MFPlay no puede agregar el efecto correspondiente (por ejemplo, porque el formato de transmisión no es compatible), se producirá un error de reproducción. En la mayoría de casos, es mejor poner un efecto como opcional.
MFPlay sigue usando el efecto en todas las reproducciones posteriores. Para quitar el efecto, llame a 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;
}
Requisitos
MFPlay requiere Windows 7.
Temas relacionados