Condividi tramite


Configurazione di un'origine multimediale

Quando si usa il risolutore di origine per creare un'origine multimediale, è possibile specificare uno store delle proprietà contenente le proprietà di configurazione. Queste proprietà verranno utilizzate per inizializzare l'origine multimediale. Il set di proprietà supportate dipende dall'implementazione dell'origine multimediale. Non tutte le origini multimediali definiscono le proprietà di configurazione.

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

Fonte multimediale Proprietà
Origine di rete Vedere Network Source Features.
Sorgente multimediale ASF

 

Per configurare un'origine, seguire questa procedura.

  1. Utilizzare 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::CreateObjectFromURLe 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 del flusso di 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 di proprietà, l'origine multimediale dovrebbe comunque funzionare correttamente con le impostazioni predefinite.

risolutore di origine