Como reproduzir arquivos de mídia com o Media Foundation

Este tutorial mostra como reproduzir arquivos de mídia usando o objeto Sessão de Mídia .

Pré-requisitos

Antes de ler este tópico, você deve estar familiarizado com os seguintes conceitos da Media Foundation:

Observação

Este tópico não descreve como reproduzir arquivos protegidos pelo DRM (gerenciamento de direitos digitais). Para obter informações sobre o DRM no Microsoft Media Foundation, confira Como reproduzir arquivos de mídia protegidos.

 

Visão geral

Os seguintes objetos são usados para reproduzir um arquivo de mídia com a Sessão de Mídia:

  • Uma fonte de mídia é um objeto que analisa um arquivo de mídia ou outra fonte de dados de mídia. A fonte de mídia cria objetos de fluxo para cada fluxo de áudio ou vídeo no arquivo. Os decodificadores convertem dados de mídia codificados em vídeo e áudio não compactados.
  • O Resolvedor de Origem cria uma fonte de mídia de uma URL.
  • O EVR ( Renderizador de Vídeo Avançado ) renderiza o vídeo para a tela.
  • O SAR (Renderizador de Áudio de Streaming ) renderiza áudio para um alto-falante ou outro dispositivo de saída de áudio.
  • Uma topologia define o fluxo de dados da fonte de mídia para o EVR e o SAR.
  • A Sessão de Mídia controla o fluxo de dados e envia status eventos para o aplicativo. O diagrama a seguir ilustra esse processo.

diagrama mostrando a reprodução usando a sessão de mídia

Veja a seguir uma estrutura de tópicos geral das etapas necessárias para reproduzir um arquivo de mídia usando a Sessão de Mídia:

  1. Chame a função MFStartup para inicializar a plataforma do Media Foundation.

  2. Chame MFCreateMediaSession para criar uma nova instância da Sessão de Mídia.

  3. Use o resolvedor de origem para criar uma fonte de mídia. Para obter mais informações, consulte Usando o resolvedor de origem.

  4. Crie uma topologia que conecte a fonte de mídia ao EVR e ao SAR. Nesta etapa, o aplicativo cria uma topologia parcial que não inclui os decodificadores. Para obter mais informações, consulte Criando topologias de reprodução.

  5. Chame IMFMediaSession::SetTopology para definir a topologia na Sessão de Mídia.

  6. Use a interface IMFMediaEventGenerator para obter eventos da Sessão de Mídia.

  7. Chame IMFMediaSession::Start para iniciar a reprodução. Após o início da reprodução, você pode pausar chamando IMFMediaSession::P ause ou interrompê-la chamando IMFMediaSession::Stop.

  8. Quando o aplicativo for encerrado, libere os recursos:

    1. Chame IMFMediaSession::Close para fechar a Sessão de Mídia. Esse método é assíncrono. Quando ela for concluída, a Sessão de Mídia enviará um evento MESessionClosed . Em seguida, é seguro executar as etapas restantes.
    2. Chame IMFMediaSource::Shutdown para desligar a fonte de mídia.
    3. Chame IMFMediaSession::Shutdown para encerrar a Sessão de Mídia.
    4. Chame MFShutdown para desligar a plataforma do Media Foundation.

As seções a seguir mostram um exemplo de código completo:

Sessão de Mídia

Reprodução de áudio/vídeo