Compartir a través de


Configuración de un origen multimedia

Al usar el Solucionador de origen para crear un origen multimedia, puede especificar un almacén de propiedades que contenga propiedades de configuración. Estas propiedades se usarán para inicializar el origen multimedia. El conjunto de propiedades admitidas depende de la implementación del origen multimedia. No todos los orígenes multimedia definen las propiedades de configuración.

En la tabla siguiente se enumeran las propiedades de configuración de los orígenes multimedia que se proporcionan en Media Foundation. Los orígenes multimedia de terceros pueden definir sus propias propiedades personalizadas.

Origen multimedia Propiedades
Origen de red Consulte Características de origen de red.
Origen multimedia de ASF

 

Para configurar un origen, realice los pasos siguientes.

  1. Llame a PSCreateMemoryPropertyStore para crear un almacén de propiedades. Esta función devuelve un puntero IPropertyStore .
  2. Llame a IPropertyStore::SetValue para establecer una o varias propiedades de configuración.
  3. Llame a una de las funciones de creación del solucionador de origen, como IMFSourceResolver::CreateObjectFromURL, y pase el puntero IPropertyStore en el parámetro pProps .
// Creates a media source from a URL.

HRESULT CreateMediaSource(
    PCWSTR pszURL, 
    IPropertyStore *pConfig,    // Optional, can be NULL
    IMFMediaSource **ppSource
    )
{
    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);

    // Use the source resolver to create the media source.
    if (SUCCEEDED(hr))
    {
        MF_OBJECT_TYPE ObjectType;

        DbgLog(L"CreateObjectFromURL");

        hr = pSourceResolver->CreateObjectFromURL(
            pszURL,                     
            MF_RESOLUTION_MEDIASOURCE,  // Create a media source.
            pConfig,                    // Configuration properties.
            &ObjectType,                // Receives the object type. 
            &pSource            
            );

        DbgLog(L"CreateObjectFromURL - FINISHED");

    }

    if (SUCCEEDED(hr))
    {
        hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));
    }

    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

El solucionador de origen pasa el puntero IPropertyStore directamente al controlador de esquema o al controlador de secuencia de bytes que crea el origen. El solucionador de origen no intenta validar las propiedades.

Por lo general, estas propiedades se usan para la configuración avanzada. Si no proporciona un almacén de propiedades, el origen multimedia debe seguir funcionando correctamente con la configuración predeterminada.

Resolución de origen