Idioma: HTML | XAML

Guia de início rápido: vídeo e áudio (XAML)

Applies to Windows and Windows Phone

Reproduza mídia de áudio e vídeo usando um MediaElement em seu aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic.

Mapa: como este tópico está relacionado aos outros? Veja:

Introdução

Para reproduzir áudio e vídeo no seu aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic, use a classe MediaElement. O MediaElement apresenta várias propriedades e métodos para controlar a reprodução de áudio e vídeo. Veremos as noções básicas para criar e usar um MediaElement.

O Windows 8.1 apresenta controles de transporte internos para o MediaElement. Eles manipulam os controles de reprodução, parada, pausa, volume, mudo, busca/andamento e seleção de áudio. Para habilitar esses controles, defina AreTransportControlsEnabled como true. Para desabilitá-los, defina AreTransportControlsEnabled como false.

O Windows 8.1 apresenta uma propriedade IsFullWindow para habilitar e desabilitar a renderização da janela inteira. Isso garante que as otimizações do sistema sejam habilitadas ao alternar para a renderização de janela inteira. No Windows 8.1 e posterior, use sempre a propriedade IsFullWindow para habilitar e desabilitar a renderização de janela inteira.

Antes do Windows 8.1, o desenvolvedor era responsável pela criação de uma interface do usuário personalizada para controlar a reprodução de áudio e vídeo. Por exemplo, para iniciar a mídia no aplicativo, você podia criar um Button e chamar Play no manipulador de eventos Button. Apesar de o Windows 8.1 apresentar controles de transporte internos, às vezes você ainda precisa criar uma interface do usuário personalizada para dar suporte a outras funcionalidades ou você pode querer usar seus próprios controles no lugar dos controles internos. Veja uma discussão mais detalhadas sobre a criação de controles de transporte personalizados em Como criar controles de transporte de mídia personalizados.

Noções básicas de MediaElement

Adicione mídia a seu aplicativo criando um objeto MediaElement em XAML e defina a Source como um URI (Uniform Resource Identifier) que aponta para um arquivo de áudio ou vídeo.

Este código cria um MediaElement e define sua propriedade Source como o URI de um arquivo de vídeo. A reprodução do MediaElement começa quando a página é carregada. É possível suprimir a reprodução imediata de mídia definindo a propriedade AutoPlay como false.


<MediaElement x:Name="mediaSimple" 
              Source="Videos/video1.mp4" 
              Width="400" AutoPlay="False"/>


Este código cria um MediaElement com os controles de transporte internos ativados e a propriedade AutoPlay definida como false..


<MediaElement x:Name="mediaPlayer" 
              Source="Videos/video1.mp4" 
              Width="400" 
              AutoPlay="False"
              AreTransportControlsEnabled="True" />


Trabalhando com propriedades de MediaElement

O objeto MediaElement fornece várias propriedades específicas para mídia. Estas são algumas das propriedades comuns. Veja na página de referência do MediaElement uma listagem completa de propriedades, métodos e eventos.

PropriedadeDescrição
AutoPlay Especifica se a reprodução do MediaElement deve ser iniciada automaticamente. O valor padrão é true.
IsMuted Especifica se o mudo é ativado. O valor padrão é false.
IsFullWindow

Apresentado no Windows 8.1.

Ativa ou desativa a renderização da janela inteira. Você sempre deve usar a propriedade IsFullWindow para ativar e desativar a renderização da janela inteira. Ela garante a ativação das otimizações do sistema.

AreTransportControlsEnabled

Apresentado no Windows 8.1.

Ativa ou desativa os controles de transporte internos.

Volume Especifica o volume do áudio em um intervalo de 0 a 1, com 1 sendo o mais alto.
Balance Especifica a taxa de volume entre alto-falantes estéreo, em um intervalo de -1 a 1. O valor padrão é 0.
CurrentState Especifica o estado atual do MediaElement.
IsAudioOnly Especifica se a origem de mídia atual é somente áudio.
IsLooping Especifica se a mídia atual está definida para reiniciar do começo ao chegar ao final da mídia.
NaturalDuration Especifica a duração do arquivo de mídia aberto no momento.
Position Especifica a posição de reprodução atual. Você pode buscar outro ponto na linha do tempo da mídia definindo Position para um ponto específico na linha do tempo.
PosterSource Especifica a origem da imagem usada no espaço reservado enquanto a mídia é carregada.
Source Especifica o URI da fonte do arquivo de áudio ou vídeo.
AudioStreamCount Especifica o número de fluxos de áudio existentes no arquivo de mídia atual.
AudioStreamIndex Especifica o fluxo de áudio reproduzido junto com o componente de vídeo.
Stretch

Apresentado no Windows 8.1.

A propriedade MediaElement.Stretch define como o MediaElement preenche o espaço do contêiner no qual está. Os estados de Stretch são parecidos com as configurações de tamanho de imagem em aparelhos de TV. Você pode enganchá-la em um botão para que o usuário possa escolher a configuração de sua preferência.

  • None mostra a resolução nativa do conteúdo em seu tamanho original.
  • Uniform preenche o máximo do espaço, mantendo a taxa de proporção e o conteúdo da imagem. Isso pode produzir barras pretas horizontais ou verticais nas bordas do vídeo. Isso é semelhante aos modos widescreen.
  • UniformToFill preenche todo o espaço, mantendo a taxa de proporção. Isso pode fazer parte da imagem ser cortada. Isso é semelhante aos modos de tela inteira.
  • Fill preenche todo o espaço, mas não mantém a taxa de proporção. A imagem não é cortada, mas pode ocorrer um alongamento. Isso é semelhante aos modos de ampliação.
Valores de enumeração de alongamento

 

Controlando a reprodução de mídia

O Windows 8.1 apresenta controles de transporte internos para controlar a reprodução de mídia. Para habilitar os controles de transporte internos, defina AreTransportControlsEnabled como true. Essa é a maneira mais fácil de controlar a reprodução de MediaElement. Mas se você quiser adicionar sua própria interface do usuário para controlar a reprodução, estas seções explicam os métodos de reprodução manual no MediaElement. Isso pode ser usado para adicionar suporte a recursos que não estão nos controles internos ou para substituí-los por seus próprios controles personalizados.

O objeto MediaElement fornece vários métodos específicos para mídia para controlar a reprodução de mídia. Estes são alguns dos métodos comuns. Veja uma listagem completa na página de referência do MediaElement.

MétodoDescrição
Play Reproduz a mídia a partir da posição atual.
Pause Pausa a mídia na posição atual.
Stop Pausa a mídia e a redefine a Position da mídia para 0.
SetSource Define a propriedade Origem usando o fluxo fornecido.

 

O objeto MediaElement fornece vários eventos específicos para mídia. Estes são alguns dos eventos comuns. Veja uma listagem completa na página de referência do MediaElement.

MétodoDescrição
MediaOpened Ocorre quando o fluxo de mídia foi validado e aberto, e os cabeçalhos do arquivo foram lidos.
MediaEnded Ocorre quando o MediaElement conclui a reprodução do áudio ou vídeo.
MediaFailed Ocorre quando há um erro associado à Source da mídia.
CurrentStateChange Ocorre quando o valor da propriedade CurrentState muda.

 

Este código cria um MediaElement e vários objetos Button para controlar a reprodução de mídia. O MediaElement escuta os eventos MediaOpened, MediaEnded e MediaFailed. E cria a interface do usuário para manipular Play, Stop e Pause.


<StackPanel HorizontalAlignment="Center">
    <MediaElement x:Name="media" 
                  Source="Videos/Video1.mp4" 
                  Width="300"
                  AreTransportControlsEnabled="False"
                  MediaFailed="Media_MediaFailed"
                  MediaOpened="Media_MediaOpened"
                  MediaEnded="Media_MediaEnded" />
    
    <StackPanel Orientation="Horizontal"
                HorizontalAlignment="Center">
        
        <Button Content="Play" Click="Play_Click"/>
        <Button Content="Pause" Click="Pause_Click"/>
        <Button Content="Stop" Click="Stop_Click" />
        
    </StackPanel>
</StackPanel>



void Play_Click(object sender, RoutedEventArgs e)
{
    media.Play();
}

void Pause_Click(object sender, RoutedEventArgs e)
{
    if (media.CanPause)
    {
        media.Pause();
    }
}

void Stop_Click(object sender, RoutedEventArgs e)
{
    media.Stop();
}

void Media_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
    // Handle failed media event
}

void Media_MediaOpened(object sender, RoutedEventArgs e)
{
    // Handle open media event
}

void Media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Handle media ended event
}


Observação  Além de parar, pausar ou reproduzir mídia, você também pode buscar uma posição específica definindo a propriedade Position de um objeto MediaElement.

Definindo a origem da mídia

Você pode definir a origem do MediaElement com a propriedade Source ou o método SetSource.

O tipo da propriedade Source é Uri. Para mudar o arquivo de mídia de origem, defina Source como um Uri que contém o caminho do arquivo.

O método SetSource leva um IRandomAccessStream, que é a origem da mídia, e o tipo MIME da mídia. O FileOpenPicker torna fácil obter um objeto de fluxo para um arquivo no sistema de arquivos local ou no Microsoft OneDrive. Para saber mais sobre como usar o controle FileOpenPicker, veja Como abrir arquivos de mídia usando o controle FileOpenPicker.

Para abrir arquivos na Internet ou arquivos inseridos no aplicativo, defina a propriedade Source como o Uri do arquivo de mídia. É recomendável colocar o código que define a origem em um bloco try/catch. Para obter mais informações sobre como abrir arquivos de mídia na rede, veja Como reproduzir arquivos de mídia na rede.

Evitando o esmaecimento da tela

Para que a exibição não seja desativada quando não é detectada nenhuma ação do usuário, como quando o aplicativo está reproduzindo vídeo em tela inteira, você pode chamar DisplayRequest.RequestActive.

Para economizar energia e a vida útil da bateria, você deve chamar DisplayRequest.RequestRelease para liberar a solicitação de exibição quando ela não é mais necessária. Por exemplo, quando a mídia está pausada ou parada, quando a mídia termina ou quando o aplicativo é suspenso.

Veja o Exemplo de estado de energia do vídeo e Como manter a exibição ativa durante a reprodução de áudio/vídeo para saber mais.

PlayTo e mídia

Você pode usar Reproduzir em para transmitir áudio, vídeo ou imagens facilmente de um computador para dispositivos em sua rede doméstica. Para saber mais sobre como ativar Reproduzir em no seu aplicativo da Windows Store em C++, C# ou Visual Basic, veja Guia de início rápido: usando Reproduzir em em aplicativos.

Formatos de mídia compatíveis

Para saber sobre formatos de mídia de áudio ou vídeo com suporte em aplicativos da Windows Store, veja Formatos de áudio e vídeo aceitos.

Tópicos relacionados

Mapas
Mapa de aplicativos do Tempo de Execução do Windows em C# e Visual Basic
Mapa de aplicativos do Tempo de Execução do Windows em C++
Desenvolvendo UX para aplicativos
Adicionando multimídia
Exemplos
Exemplo de reprodução de mídia XAML
Exemplo de transcodificação de mídia
Exemplo de captura de mídia
Exemplo de estado de energia do vídeo
Reprodução de mídia, do início ao fim
Tarefas
Como criar controles personalizados de transporte de mídia
Como abrir arquivos de mídia usando o controle FileOpenPicker
Como selecionar faixas de áudio em idiomas diferentes
Como abrir arquivos de mídia na rede
Como usar os controles de transporte de mídia do sistema
Como redimensionar e ampliar vídeo
Como reproduzir áudio em segundo plano
Referência
MediaElement
Play
PlaybackRate
IValueConverter
AudioStreamIndex
Outros recursos
Formatos de áudio e vídeo aceitos
Otimizar recursos de mídia

 

 

Mostrar:
© 2014 Microsoft