Compartilhar via


Configurando uma fonte de mídia

Ao usar o Source Resolver para criar uma fonte de mídia, você pode especificar um repositório de propriedades que contenha propriedades de configuração. Essas propriedades serão usadas para inicializar a fonte de mídia. O conjunto de propriedades suportadas depende da implementação da fonte de mídia. Nem todas as fontes de mídia definem propriedades de configuração.

A tabela a seguir lista as propriedades de configuração para as fontes de mídia fornecidas no Media Foundation. Fontes de mídia de terceiros podem definir suas próprias propriedades personalizadas.

Fonte multimédia Propriedades
Origem da rede Consulte Recursos de origem de rede.
Fonte de mídia ASF

 

Para configurar uma origem, execute as etapas a seguir.

  1. Chame PSCreateMemoryPropertyStore para criar um novo repositório de propriedades. Esta função retorna um ponteiro IPropertyStore.
  2. Chame IPropertyStore::SetValue para definir uma ou mais propriedades de configuração.
  3. Chame uma das funções de criação do resolvedor de origem, como IMFSourceResolver::CreateObjectFromURL, e passe o ponteiro IPropertyStore no 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;
}

O resolvedor de fonte passa o ponteiro IPropertyStore diretamente para o manipulador de esquema ou de fluxo de bytes que cria a fonte. O resolvedor de origem não faz nenhuma tentativa de validar as propriedades.

Geralmente, essas propriedades são usadas para configurações avançadas. Se você não fornecer um repositório de propriedades, a fonte de mídia ainda deverá funcionar corretamente com as configurações padrão.

de resolução de origem