Transmitindo mídia para dispositivos usando Reproduzir em (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente ]

Reproduzir em permite que usuários transfiram áudio, vídeo ou imagens facilmente do seu computador para dispositivos em rede.

Introdução

Você pode usar Reproduzir em para permitir que os usuários transmitam áudio, vídeo ou imagens com facilidade de seus computadores para dispositivos eu suas redes domésticas. Por exemplo, um usuário que está assistindo a um vídeo em seu aplicativo pode transmiti-lo para a sua TV para todos na sala assistirem também.

A opção Reproduzir em transfere áudio, vídeo ou imagens para um receptor certificado para essa opção.

Reproduzir em faz parte do botão Dispositivos. Para aplicações que contêm áudio, vídeo ou imagens, o usuário abre o símbolo do evento Devices e visualiza os dispositivos da rede doméstica para os quais o conteúdo de mídia pode ser transmitido.

Usando Reproduzir em no seu aplicativo

Você pode usar Reproduzir em para transmitir o áudio ou vídeo do seu aplicativo, assim como imagens, implementando o contrato do botão Reproduzir em. Para implementar o contrato do botão Reproduzir em no seu aplicativo, registre o evento sourceRequested. Para registrar o evento sourceRequested, obtenha uma referência do PlayToManager atual chamando o método getForCurrentView. Em seguida, você pode chamar addEventHandler no PlayToManager para associar o seu manipulador de eventos ao evento sourceRequested. No seu manipulador de eventos, passe o elemento de mídia do seu aplicativo para o método setSource do objeto PlayToSourceRequestedEventArgs passado para o manipulador de eventos, conforme mostra o exemplo a seguir.

// Play To Contract

private Windows.Media.PlayTo.PlayToManager ptm = 
        Windows.Media.PlayTo.PlayToManager.GetForCurrentView();

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    ptm.SourceRequested += sourceRequestHandler;
}

private void sourceRequestHandler(
    Windows.Media.PlayTo.PlayToManager sender,
    Windows.Media.PlayTo.PlayToSourceRequestedEventArgs e)
{
    try
    {
        e.SourceRequest.SetSource(mediaElement.PlayToSource);
    }
    catch (Exception ex)
    {
        messageBlock.Text += "Exception encountered: " + ex.Message + "\n";
    }
}
// Play To Contract

var ptm = Windows.Media.PlayTo.PlayToManager.getForCurrentView();
ptm.addEventListener("sourcerequested", sourceRequestHandler, false);

function sourceRequestHandler(e) {
    try {
        e.sourceRequest.setSource(mediaElement.msPlayToSource);

    } catch (ex) {
        id("messageDiv").innerHTML += "Exception encountered: " + ex.message + "<br/>";
    }
}
' Play To Contract

Private ptm As Windows.Media.PlayTo.PlayToManager =
        Windows.Media.PlayTo.PlayToManager.GetForCurrentView()

Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
    AddHandler ptm.SourceRequested, AddressOf sourceRequestHandler
End Sub

Private Sub sourceRequestHandler(
    sender As Windows.Media.PlayTo.PlayToManager,
    e As Windows.Media.PlayTo.PlayToSourceRequestedEventArgs)

    Try
        e.SourceRequest.SetSource(mediaElement.PlayToSource)
    Catch ex As Exception
        messageBlock.Text &= "Exception encountered: " & ex.Message & vbCrLf
    End Try
End Sub

Quando o usuário seleciona um destino para Reproduzir em do símbolo do evento Devices, Reproduzir em ergue o evento sourceRequested. Então, Reproduzir em transmite o elemento de mídia passado ao método setSource para o dispositivo de destino selecionado pelo usuário.

Se Reproduzir em estiver transmitindo mídia do seu aplicativo para um dispositivo de destino, Reproduzir em continuará transmitindo a mídia do seu aplicativo para o dispositivo de destino mesmo que o seu aplicativo seja movido para o tela de fundo enquanto outro aplicativo está ativo. Para saber mais, veja Iniciando, retomando e executando multitarefas.

Comportamento padrão de Reproduzir em

Por padrão, Reproduzir em está habilitado para todos os elementos de áudio e vídeo da página de um aplicativo. Você pode desabilitar esse comportamento padrão no seu aplicativo, ou você pode identificar quais elementos de áudio ou vídeo não estão disponíveis para o comportamento padrão de Reproduzir em.

Para desabilitar o comportamento padrão de Reproduzir em no seu aplicativo, defina a propriedade defaultSourceSelection do objeto PlayToManager como false.

var ptm = Windows.Media.PlayTo.PlayToManager.getForCurrentView();
ptm.defaultSourceSelection = false;

Para desabilitar o comportamento padrão de Reproduzir em para um elemento específico de áudio ou vídeo, inclua a propriedade x-ms-playToDisabled na marcação do elemento.

<video src="http://sample.microsoft.com/video.mp4" x-ms-playToDisabled />

Você também pode desabilitar o comportamento padrão de Reproduzir em para um elemento em JavaScript definindo a propriedade msPlayToDisabled como true.

Se você possui mais de um elemento de áudio ou vídeo em uma página e quer identificar o primeiro elemento para transmissão via Reproduzir em, você pode incluir a propriedade x-ms-playToPrimary na marcação do elemento.

<video src="http://sample.microsoft.com/showvideo.mp4" x-ms-playToPrimary />

Você também pode identificar o primeiro elemento para transmissão via Reproduzir em JavaScript definindo a propriedade msPlayToPrimary como true.

Diretrizes para o uso de Reproduzir em em um aplicativo

Caso o seu aplicativo permita que os usuários visualizem vídeos ou imagens, ou mesmo que escutem áudio, certifique-se de incluir a funcionalidade de Reproduzir em no seu aplicativo para também permitir que os usuários transmitam a mídia para um dispositivo remoto.

Não esqueça de ativar o botão Dispositivos no aplicativo sempre que houver conteúdo de áudio, vídeo ou imagem disponível para o usuário.

Verifique se os usuários podem continuar navegando em seu aplicativo depois de iniciarem a transmissão de mídia para um dispositivo remoto usando Reproduzir em. Para manter a transmissão de mídia, o elemento de mídia do seu aplicativo deve permanecer dentro do escopo.

Como Reproduzir em faz parte da interface do usuário do Windows, não exija que os usuários naveguem para determinada página ou tela do seu aplicativo para usar Reproduzir em.

Tópicos relacionados

Guia de início rápido: usando Reproduzir em nos aplicativos

Guia de início rápido: transmitindo uma apresentação de slides usando Reproduzir em

Exemplos

exemplo do botão Reproduzir em

exemplo de PlayToReceiver

exemplo de Servidor de Mídia