Usando o Windows Media com os Serviços de Edição do DirectShow
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
[Essa API não tem suporte e pode ser alterada ou indisponível no futuro.]
Esta seção descreve como usar o conteúdo baseado em Mídia do Windows em um aplicativo DES (DirectShow Editing Services ). Há dois cenários main:
- Clipes de origem. Um projeto de DES pode conter clipes de áudio e vídeo de arquivos do Windows Media.
- Formato de destino. O Windows Media é um formato ideal para a saída final de um projeto de edição de vídeo.
Para trabalhar com arquivos do Windows Media, o aplicativo deve fornecer um certificado de software, também chamado de chave. Ele faz isso implementando um objeto de provedor de chaves. O provedor de chaves é um objeto COM que expõe a interface IServiceProvider . Para obter informações sobre como implementar o provedor de chaves, consulte Desbloqueando o SDK de Formato de Mídia do Windows.
Para usar o DES com arquivos do Windows Media, os seguintes objetos DES exigem a chave de software:
O mecanismo de renderização, para visualização ou gravação de arquivo.
O objeto MediaDet, para obter quadros de vídeo ou tipos de mídia de arquivos ASF.
! [Importante]
Não use o Mecanismo de Renderização Inteligente para ler ou gravar arquivos do Windows Media. Sempre use o Mecanismo de Renderização Básica (CLSID_RenderEngine).
Para dar a um objeto a chave de software, consulte esse objeto para a interface IObjectWithSite e chame IObjectWithSite::SetSite com um ponteiro para o provedor de chaves. Por exemplo, o código a seguir fornece a chave de software para o mecanismo de renderização:
// Create your key provider, using an application-defined function:
IServiceProvider *pKey;
hr = MyCreateKeyProviderFunction(&pKey);
// Query the Render Engine for IObjectWithSite.
IObjectWithSite *pOWS;
hr = pRenderEngine->QueryInterface(__uuidof(IObjectWithSite),
reinterpret_cast<void**>(&pOWS));
if (SUCCEEDED(hr))
{
// Give it your key provider.
hr = pOWS->SetSite(pKey);
pOWS->Release();
}
pKey->Release();
Para usar clipes de origem do Windows Media em um projeto de DES, basta chamar IObjectWithSite::SetSite no mecanismo de renderização com um ponteiro para o provedor de chaves.
Para obter informações sobre como gravar arquivos do Windows Media, consulte Escrevendo um arquivo de mídia do Windows no DES.
Tópicos relacionados