Usando Fontes de Mídia com a Sessão de Mídia
Se você estiver usando a sessão de mídia para controlar a reprodução, o conjunto de métodos que você deve chamar em uma fonte de mídia é restrito. Esta seção descreve como usar a fonte de mídia em conjunto com a Sessão de mídia.
Aqui estão as etapas básicas que seu aplicativo executará:
Crie a fonte de mídia. Para criar uma fonte de mídia, utilize o resolvedor de fontes. Para obter mais informações, consulte Source Resolver. O resolvedor de origem retorna um ponteiro para a interface de IMFMediaSource da origem. (Se você tiver escrito uma fonte de mídia personalizada, poderá fornecer um método de criação personalizado.)
Configure a apresentação. Para configurar a apresentação da fonte, chame IMFMediaSource::CreatePresentationDescriptor. Você pode modificar essa cópia, mas as alterações não ficam ativas até que a reprodução seja iniciada. Não modifique o descritor de apresentação durante a reprodução. Para mais informações, consulte os Descritores de Apresentação .
Crie uma topologia que contenha a fonte de mídia. Para obter mais informações, consulte Topologias.
Use a Sessão de mídia para controlar a reprodução. A Sessão de Multimédia chama métodos da fonte de multimédia. O aplicativo não deve chamar nenhum método na fonte de mídia no momento.
Antes de liberar a fonte de mídia, ligue IMFMediaSource::Shutdown para desligar a fonte.
Observação
Se você estiver usando a fonte do sequenciador, a fonte do sequenciador encarrega-se de desligar as fontes de segmento. Para obter mais informações, consulte Sequencer Source.
Se você usar a Sessão de Mídia, os únicos métodos que você deve chamar na fonte de mídia são CreatePresentationDescriptor, GetCharacteristicse Shutdown. Em especial:
Não chame Iniciar, Pausarou Parar; estes métodos devem ser chamados apenas pela Media Session.
Não recupere eventos diretamente da fonte de mídia ou de qualquer um dos fluxos. A Sessão de Mídia deve receber esses eventos para que o pipeline funcione corretamente. A Sessão de Mídia encaminha todos os eventos necessários para o aplicativo.
Tópicos relacionados