Método IMFSourceResolver::CreateObjectFromURL (mfidl.h)
Cria uma fonte de mídia ou um fluxo de bytes de uma URL. Esse método é síncrono.
Sintaxe
HRESULT CreateObjectFromURL(
[in] LPCWSTR pwszURL,
[in] DWORD dwFlags,
[in] IPropertyStore *pProps,
[out] MF_OBJECT_TYPE *pObjectType,
[out] IUnknown **ppObject
);
Parâmetros
[in] pwszURL
Cadeia de caracteres terminada em nulo que contém a URL a ser resolve.
[in] dwFlags
OR bit a bit de um ou mais sinalizadores. Consulte Sinalizadores de resolvedor de origem. Consulte os comentários abaixo.
[in] pProps
Ponteiro para a interface IPropertyStore de um repositório de propriedades. O método passa o repositório de propriedades para o manipulador de esquema ou manipulador de fluxo de bytes que cria o objeto. O manipulador pode usar o repositório de propriedades para configurar o objeto. Este parâmetro pode ser NULL. Para obter mais informações, consulte Configurando uma fonte de mídia.
[out] pObjectType
Recebe um membro da enumeração MF_OBJECT_TYPE , especificando o tipo de objeto que foi criado.
[out] ppObject
Recebe um ponteiro para a interface IUnknown do objeto. O chamador deve liberar a interface.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O parâmetro dwFlags contém sinalizadores mutuamente exclusivos. |
|
Não há suporte para o esquema de URL. |
Comentários
O parâmetro dwFlags deve conter o sinalizador MF_RESOLUTION_MEDIASOURCE ou o sinalizador MF_RESOLUTION_BYTESTREAM , mas não deve conter ambos.
É recomendável que você não defina MF_RESOLUTION_WRITE no argumento de entrada dwFlags , a menos que seja necessário para o seu cenário. Para a maioria dos casos de uso, as fontes de mídia não precisam ser criadas com a funcionalidade de gravação. Criar uma fonte de mídia com capacidade de gravação pode ter uma probabilidade menor de sucesso do que criar uma fonte de mídia sem capacidade de gravação. Isso ocorre porque pode haver verificações mais rigorosas sobre o conteúdo representado pela URL ao criar uma fonte de mídia com capacidade de gravação.
Para arquivos locais, você pode passar o nome do arquivo no parâmetro pwszURL ; o file:
esquema não é necessário.
Exemplos
// Create a media source from a URL.
HRESULT CreateMediaSource(PCWSTR sURL, IMFMediaSource **ppSource)
{
MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;
IMFSourceResolver* pSourceResolver = NULL;
IUnknown* pSource = NULL;
// Create the source resolver.
HRESULT hr = MFCreateSourceResolver(&pSourceResolver);
if (FAILED(hr))
{
goto done;
}
// Use the source resolver to create the media source.
// Note: For simplicity this sample uses the synchronous method to create
// the media source. However, creating a media source can take a noticeable
// amount of time, especially for a network source. For a more responsive
// UI, use the asynchronous BeginCreateObjectFromURL method.
hr = pSourceResolver->CreateObjectFromURL(
sURL, // URL of the source.
MF_RESOLUTION_MEDIASOURCE, // Create a source object.
NULL, // Optional property store.
&ObjectType, // Receives the created object type.
&pSource // Receives a pointer to the media source.
);
if (FAILED(hr))
{
goto done;
}
// Get the IMFMediaSource interface from the media source.
hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));
done:
SafeRelease(&pSourceResolver);
SafeRelease(&pSource);
return hr;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mfidl.h |
Biblioteca | Mfuuid.lib |