Compartir a través de


Uso de Windows Media con DirectShow Editing Services

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar 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.

[Esta API no se admite y puede modificarse o no estar disponible en el futuro].

En esta sección se describe cómo usar el contenido basado en Windows Media en una aplicación DirectShow Editing Services (DES). Hay dos escenarios principales:

  • Clips de origen. Un proyecto DES puede contener clips de audio y vídeo de archivos de Windows Media.
  • Formato de destino. Windows Media es un formato ideal para la salida final de un proyecto de edición de vídeo.

Para trabajar con archivos de Windows Media, la aplicación debe proporcionar un certificado de software, también denominado clave. Para ello, implementa un objeto de proveedor de claves. El proveedor de claves es un objeto COM que expone la interfaz IServiceProvider . Para obtener información sobre cómo implementar el proveedor de claves, consulte Desbloqueo del SDK de Windows Media Format.

Para usar DES con archivos de Windows Media, los siguientes objetos DES requieren la clave de software:

  • Motor de representación, para obtener una vista previa o escritura de archivos.

  • El objeto MediaDet, para obtener fotogramas de vídeo o tipos multimedia de archivos ASF.

  • Importante

    No use el motor de representación inteligente para leer o escribir archivos de Windows Media. Use siempre el motor de representación básico (CLSID_RenderEngine).

     

Para asignar a un objeto la clave de software, consulte ese objeto para la interfaz IObjectWithSite y llame a IObjectWithSite::SetSite con un puntero al proveedor de claves. Por ejemplo, el código siguiente proporciona la clave de software al motor de representación:

// Create your key provider, using an application-defined function:
IServiceProvider *pKey;
hr = MyCreateKeyProviderFunction(&pKey);  

// Query the Render Engine for IObjectWithSite.
IObjectWithSite *pOWS;
hr = pRenderEngine->QueryInterface(__uuidof(IObjectWithSite), 
    reinterpret_cast<void**>(&pOWS));
if (SUCCEEDED(hr))
{
    // Give it your key provider.
    hr = pOWS->SetSite(pKey);
    pOWS->Release();
}
pKey->Release();

Para usar clips de origen de Windows Media en un proyecto DES, simplemente llame a IObjectWithSite::SetSite en el motor de representación con un puntero al proveedor de claves.

Para obtener información sobre cómo escribir archivos de Windows Media, vea Escribir un archivo de Windows Media en DES.

Uso de DirectShow Editing Services