Condividi tramite


Configurazione di un'origine multimediale

Quando si usa il resolver di origine per creare un'origine multimediale, è possibile specificare un archivio proprietà contenente le proprietà di configurazione. Queste proprietà verranno usate per inizializzare l'origine multimediale. Il set di proprietà supportate dipende dall'implementazione dell'origine multimediale. Non ogni origine multimediale definisce le proprietà di configurazione.

Nella tabella seguente sono elencate le proprietà di configurazione per le origini multimediali fornite in Media Foundation. Le origini multimediali di terze parti possono definire le proprie proprietà personalizzate.

Origine multimediale Proprietà
Origine di rete Vedere Funzionalità dell'origine di rete.
Origine multimediale ASF

 

Per configurare un'origine, seguire questa procedura.

  1. Chiamare PSCreateMemoryPropertyStore per creare un nuovo archivio di proprietà. Questa funzione restituisce un puntatore IPropertyStore .
  2. Chiamare IPropertyStore::SetValue per impostare una o più proprietà di configurazione.
  3. Chiamare una delle funzioni di creazione del resolver di origine, ad esempio IMFSourceResolver::CreateObjectFromURL e passare il puntatore IPropertyStore nel parametro 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;
}

Il resolver di origine passa il puntatore IPropertyStore direttamente al gestore dello schema o al gestore di flusso byte che crea l'origine. Il resolver di origine non tenta di convalidare le proprietà.

In genere, queste proprietà vengono usate per le impostazioni avanzate. Se non si fornisce un archivio proprietà, l'origine multimediale deve comunque funzionare correttamente con le impostazioni predefinite.

Resolver di origine