Método IMFPMediaPlayer::InsertEffect (mfplay.h)

Importante Obsoleto. Esta API se puede quitar de futuras versiones de Windows. Las aplicaciones deben usar la sesión multimedia para la reproducción.
 

Aplica un efecto de audio o vídeo a la reproducción.

Sintaxis

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

Parámetros

[in] pEffect

Puntero a la interfaz IUnknown para una de las siguientes opciones:

  • Transformación de Media Foundation (MFT) que implementa el efecto. Las MFT exponen la interfaz IMFTransform .
  • Objeto de activación que crea un MFT. Los objetos de activación exponen la interfaz IMFActivate .

[in] fOptional

Especifica si el efecto es opcional.

Valor Significado
VERDAD
El efecto es opcional. Si el objeto del reproductor MFPlay no puede agregar el efecto, omite el efecto y continúa la reproducción.
FALSO
Si el objeto del reproductor MFPlay no puede agregar el efecto, se produce un error de reproducción.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_INVALIDINDEX
Este efecto ya se agregó.

Comentarios

El objeto especificado en el parámetro pEffect puede implementar un efecto de vídeo o un efecto de audio. El efecto se aplica a cualquier elemento multimedia establecido después de llamar al método . No se aplica al elemento multimedia actual.

Para cada elemento multimedia, el efecto se aplica a la primera secuencia seleccionada del tipo coincidente (audio o vídeo). Si un elemento multimedia tiene dos secuencias seleccionadas del mismo tipo, la segunda secuencia no recibe el efecto. El efecto se omite si el elemento multimedia no contiene una secuencia que coincida con el tipo de efecto. Por ejemplo, si establece un efecto de vídeo y reproduce un archivo que contiene solo audio, se omite el efecto de vídeo, aunque no se genera ningún error.

El efecto se aplica a todos los elementos multimedia posteriores, hasta que la aplicación quita el efecto. Para quitar un efecto, llame a IMFPMediaPlayer::RemoveEffect o IMFPMediaPlayer::RemoveAllEffects.

Si establece varios efectos del mismo tipo (audio o vídeo), se aplican en el mismo orden en el que se llama a InsertEffect.

Optimizaciones de reproducción remota

Los efectos de audio y vídeo pueden ser incompatibles con las optimizaciones que se usan para la reproducción remota. Los siguientes comentarios solo se aplican a los efectos de audio o vídeo que se usan realmente durante la reproducción:
  • Si marca un efecto de audio o vídeo según sea necesario, estableciendo fOptional enFALSE, MFPlay deshabilita las optimizaciones de reproducción remota.
  • De lo contrario, si todos los efectos de audio y vídeo están marcados como opcionales, MFPlay podría quitar los efectos, con el fin de habilitar las optimizaciones de reproducción remota.
En otras palabras, los efectos necesarios tienen prioridad sobre las optimizaciones remotas, pero los efectos opcionales no.

Las optimizaciones remotas pueden deshabilitarse por otros motivos. Por ejemplo, se deshabilitan si establece la opción MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION al crear el objeto de reproductor. En ese caso, MFPlay intentará insertar cualquier efecto opcional.

Los efectos que no son de audio y que no son de vídeo no afectan a las optimizaciones remotas. Además, si inserta un efecto necesario, pero el origen no contiene ningún flujo de ese tipo, no se deshabilitan las optimizaciones remotas.

Ejemplos

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

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mfplay.h

Consulte también

Cómo agregar efectos de audio o vídeo

IMFPMediaPlayer

Uso de MFPlay para la reproducción de audio y vídeo