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:
- Sessão de Mídia
- Resolvedor de Origem
- Topologias
- Geradores de Eventos de Mídia
- Descritores de apresentação
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.
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:
Chame a função MFStartup para inicializar a plataforma do Media Foundation.
Chame MFCreateMediaSession para criar uma nova instância da Sessão de Mídia.
Use o resolvedor de origem para criar uma fonte de mídia. Para obter mais informações, consulte Usando o resolvedor de origem.
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.
Chame IMFMediaSession::SetTopology para definir a topologia na Sessão de Mídia.
Use a interface IMFMediaEventGenerator para obter eventos da Sessão de Mídia.
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.
Quando o aplicativo for encerrado, libere os recursos:
- 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.
- Chame IMFMediaSource::Shutdown para desligar a fonte de mídia.
- Chame IMFMediaSession::Shutdown para encerrar a Sessão de Mídia.
- Chame MFShutdown para desligar a plataforma do Media Foundation.
As seções a seguir mostram um exemplo de código completo:
- Etapa 1: Declarar a classe CPlayer
- Etapa 2: Criar o objeto CPlayer
- Etapa 3: Abrir um arquivo de mídia
- Etapa 4: Criar a sessão de mídia
- Etapa 5: Manipular eventos de sessão de mídia
- Etapa 6: Controlar a reprodução
- Etapa 7: Desligar a sessão de mídia
- Exemplo de reprodução de sessão de mídia
Tópicos relacionados