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 será restrito. Esta seção descreve como usar a fonte de mídia em conjunto com a Sessão de Mídia.

Estas são as etapas básicas que seu aplicativo executará:

  1. Crie a fonte de mídia. Para criar uma fonte de mídia, use o resolvedor de origem. Para obter mais informações, consulte Resolvedor de Origem. O resolvedor de origem retorna um ponteiro para a interface IMFMediaSource da origem. (Se você tiver escrito uma fonte de mídia personalizada, poderá fornecer um método de criação personalizado.)

  2. Configure a apresentação. Para configurar a apresentação da origem, chame IMFMediaSource::CreatePresentationDescriptor. Você pode modificar essa cópia, mas as alterações não se tornam ativas até que a reprodução seja iniciada. Não modifique o descritor de apresentação durante a reprodução. Para obter mais informações, consulte Descritores de apresentação.

  3. Crie uma topologia que contenha a fonte de mídia. Para obter mais informações, consulte Topologias.

  4. Use a Sessão de Mídia para controlar a reprodução. A Sessão de Mídia chama métodos na fonte de mídia. O aplicativo não deve chamar nenhum método na fonte de mídia no momento.

  5. Antes de liberar a fonte de mídia, chame IMFMediaSource::Shutdown para desligar a fonte.

    Observação

    Se você estiver usando a origem do sequenciador, a origem do sequenciador manipulará o desligamento das fontes do 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 serão CreatePresentationDescriptor, GetCharacteristics e Shutdown. Especialmente:

  • Não chame Iniciar, Pausar ou Parar; esses métodos devem ser chamados apenas pela Sessão de Mídia.

  • Não chame nenhum método IMFMediaStream .

  • Não recupere eventos diretamente da fonte de mídia ou de nenhum 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.

Sessão de Mídia