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.
- Chame PSCreateMemoryPropertyStore para criar um novo repositório de propriedades. Esta função retorna um ponteiro IPropertyStore.
- Chame IPropertyStore::SetValue para definir uma ou mais propriedades de configuração.
- 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.
Tópicos relacionados