PlayToReceiver Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um destino Reproduzir para.
public ref class PlayToReceiver sealed
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PlayToReceiver final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class PlayToReceiver final
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PlayToReceiver
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class PlayToReceiver
function PlayToReceiver()
Public NotInheritable Class PlayToReceiver
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Funcionalidades do aplicativo |
privateNetworkClientServer
|
Comentários
Você pode usar a classe PlayToReceiver para criar um receptor play to de software personalizado que é um renderizador de mídia digital para computadores em sua rede. Você pode incluir um objeto PlayToReceiver em seu aplicativo para lidar com a comunicação com computadores cliente Play To e, em seguida, reproduzir ou exibir conteúdo transmitido desses computadores usando seus próprios elementos de mídia ou controles.
Os membros da classe PlayToReceiver consistem no seguinte:
- A propriedade FriendlyName que identifica o nome do receptor Reproduzir para quando ele é anunciado na rede.
- Propriedades que identificam o tipo de mídia compatível com o receptor Play To: SupportsAudio, SupportsVideo, SupportsImage.
- O método StartAsync que inicia o receptor Play To e o anuncia na rede como um renderizador de mídia digital. O método StopAsync que interrompe o receptor Play To e para de anunciá-lo na rede.
- O evento SourceChangeRequested que ocorre quando você recebe um fluxo de mídia de um computador e eventos que ocorrem quando uma ação é solicitada pelo computador cliente Reproduzir para, como uma alteração de volume, ou uma alteração no local de reprodução da mídia transmitida: CurrentTimeChangeRequested, MuteChangeRequested, PauseRequested, PlayRequested, StopRequested, VolumeChangeRequested, TimeUpdateRequested.
- Métodos que você pode chamar para notificar o cliente Play To quando ocorrer uma alteração para o receptor do Play To: NotifyDurationChange, NotifyEnded, NotifyError, NotifyLoadedMetadata, NotifyPaused, NotifyPlaying, NotifyRateChange, NotifySeeked, NotifySeeking, NotifyStopped, NotifyTimeUpdate, NotifyVolumeChange.
Em Reproduzir para, o vídeo começa na posição atual. Se você quiser iniciar o vídeo desde o início, basta procurar até o início do vídeo assim que a conexão Reproduzir para for estabelecida.
Para obter um exemplo de criação de um receptor play to de software, consulte Conversão de mídia.
Windows.Media.PlayTo.PlayToReceiver receiver;
Windows.System.Display.DisplayRequest display;
Windows.UI.Core.CoreDispatcher dispatcher;
bool seeking = false;
private async void StartReceiverButton_Click(object sender, RoutedEventArgs e)
{
try
{
dispatcher = Window.Current.CoreWindow.Dispatcher;
if (receiver == null)
{
receiver = new Windows.Media.PlayTo.PlayToReceiver();
}
// Add Play To Receiver events and properties
receiver.CurrentTimeChangeRequested += receiver_CurrentTimeChangeRequested;
receiver.MuteChangeRequested += receiver_MuteChangeRequested;
receiver.PauseRequested += receiver_PauseRequested;
receiver.PlaybackRateChangeRequested += receiver_PlaybackRateChangeRequested;
receiver.PlayRequested += receiver_PlayRequested;
receiver.SourceChangeRequested += receiver_SourceChangeRequested;
receiver.StopRequested += receiver_StopRequested;
receiver.TimeUpdateRequested += receiver_TimeUpdateRequested;
receiver.VolumeChangeRequested += receiver_VolumeChangeRequested;
receiver.FriendlyName = "Sample Play To Receiver";
receiver.SupportsAudio = false;
receiver.SupportsVideo = true;
receiver.SupportsImage = false;
// Add MediaElement events
VideoPlayer.CurrentStateChanged += VideoPlayer_CurrentStateChanged;
VideoPlayer.MediaEnded += VideoPlayer_MediaEnded;
VideoPlayer.MediaFailed += VideoPlayer_MediaFailed;
VideoPlayer.MediaOpened += VideoPlayer_MediaOpened;
VideoPlayer.RateChanged += VideoPlayer_RateChanged;
VideoPlayer.SeekCompleted += VideoPlayer_SeekCompleted;
VideoPlayer.VolumeChanged += VideoPlayer_VolumeChanged;
// Advertise the receiver on the local network and start receiving commands
await receiver.StartAsync();
// Prevent the screen from locking
if (display == null)
display = new Windows.System.Display.DisplayRequest();
display.RequestActive();
StatusTextBlock.Text = "'" + receiver.FriendlyName + "' started.";
}
catch
{
receiver = null;
StatusTextBlock.Text = "Failed to start receiver.";
}
}
private async void StopReceiverButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (receiver != null)
{
await receiver.StopAsync();
if (display != null)
display.RequestRelease();
// Remove Play To Receiver events
receiver.CurrentTimeChangeRequested -= receiver_CurrentTimeChangeRequested;
receiver.MuteChangeRequested -= receiver_MuteChangeRequested;
receiver.PauseRequested -= receiver_PauseRequested;
receiver.PlaybackRateChangeRequested -= receiver_PlaybackRateChangeRequested;
receiver.PlayRequested -= receiver_PlayRequested;
receiver.SourceChangeRequested -= receiver_SourceChangeRequested;
receiver.StopRequested -= receiver_StopRequested;
receiver.TimeUpdateRequested -= receiver_TimeUpdateRequested;
receiver.VolumeChangeRequested -= receiver_VolumeChangeRequested;
// Remove MediaElement events
VideoPlayer.Pause();
VideoPlayer.CurrentStateChanged -= VideoPlayer_CurrentStateChanged;
VideoPlayer.MediaEnded -= VideoPlayer_MediaEnded;
VideoPlayer.MediaFailed -= VideoPlayer_MediaFailed;
VideoPlayer.MediaOpened -= VideoPlayer_MediaOpened;
VideoPlayer.RateChanged -= VideoPlayer_RateChanged;
VideoPlayer.SeekCompleted -= VideoPlayer_SeekCompleted;
VideoPlayer.VolumeChanged -= VideoPlayer_VolumeChanged;
StatusTextBlock.Text = "Stopped '" + receiver.FriendlyName + "'.";
}
}
catch
{
StatusTextBlock.Text = "Failed to stop '" + receiver.FriendlyName + "'.";
}
}
Private receiver As Windows.Media.PlayTo.PlayToReceiver
Private display As Windows.System.Display.DisplayRequest
Private seeking As Boolean = False
Private Async Sub StartReceiverButton_Click()
Try
If receiver Is Nothing Then
receiver = New Windows.Media.PlayTo.PlayToReceiver()
End If
' Add Play To Receiver events and properties
AddHandler receiver.CurrentTimeChangeRequested, AddressOf receiver_CurrentTimeChangeRequested
AddHandler receiver.MuteChangeRequested, AddressOf receiver_MuteChangeRequested
AddHandler receiver.PauseRequested, AddressOf receiver_PauseRequested
AddHandler receiver.PlaybackRateChangeRequested, AddressOf receiver_PlaybackRateChangeRequested
AddHandler receiver.PlayRequested, AddressOf receiver_PlayRequested
AddHandler receiver.SourceChangeRequested, AddressOf receiver_SourceChangeRequested
AddHandler receiver.StopRequested, AddressOf receiver_StopRequested
AddHandler receiver.TimeUpdateRequested, AddressOf receiver_TimeUpdateRequested
AddHandler receiver.VolumeChangeRequested, AddressOf receiver_VolumeChangeRequested
receiver.FriendlyName = "Sample Play To Receiver"
receiver.SupportsAudio = False
receiver.SupportsVideo = True
receiver.SupportsImage = False
' Add MediaElement events
AddHandler VideoPlayer.CurrentStateChanged, AddressOf VideoPlayer_CurrentStateChanged
AddHandler VideoPlayer.MediaEnded, AddressOf VideoPlayer_MediaEnded
AddHandler VideoPlayer.MediaFailed, AddressOf VideoPlayer_MediaFailed
AddHandler VideoPlayer.MediaOpened, AddressOf VideoPlayer_MediaOpened
AddHandler VideoPlayer.RateChanged, AddressOf VideoPlayer_RateChanged
AddHandler VideoPlayer.SeekCompleted, AddressOf VideoPlayer_SeekCompleted
AddHandler VideoPlayer.VolumeChanged, AddressOf VideoPlayer_VolumeChanged
' Advertise the receiver on the local network and start receiving commands
Await receiver.StartAsync()
' Prevent the screen from locking
If display Is Nothing Then
display = New Windows.System.Display.DisplayRequest()
display.RequestActive()
StatusTextBlock.Text = "'" & receiver.FriendlyName & "' started."
End If
Catch
receiver = Nothing
StatusTextBlock.Text = "Failed to start receiver. "
End Try
End Sub
Private Async Sub StopReceiverButton_Click()
Try
If receiver IsNot Nothing Then
Await receiver.StopAsync()
If display IsNot Nothing Then display.RequestRelease()
' Remove Play To Receiver events
RemoveHandler receiver.CurrentTimeChangeRequested, AddressOf receiver_CurrentTimeChangeRequested
RemoveHandler receiver.MuteChangeRequested, AddressOf receiver_MuteChangeRequested
RemoveHandler receiver.PauseRequested, AddressOf receiver_PauseRequested
RemoveHandler receiver.PlaybackRateChangeRequested, AddressOf receiver_PlaybackRateChangeRequested
RemoveHandler receiver.PlayRequested, AddressOf receiver_PlayRequested
RemoveHandler receiver.SourceChangeRequested, AddressOf receiver_SourceChangeRequested
RemoveHandler receiver.StopRequested, AddressOf receiver_StopRequested
RemoveHandler receiver.TimeUpdateRequested, AddressOf receiver_TimeUpdateRequested
RemoveHandler receiver.VolumeChangeRequested, AddressOf receiver_VolumeChangeRequested
' Remove MediaElement events
VideoPlayer.Pause()
RemoveHandler VideoPlayer.CurrentStateChanged, AddressOf VideoPlayer_CurrentStateChanged
RemoveHandler VideoPlayer.MediaEnded, AddressOf VideoPlayer_MediaEnded
RemoveHandler VideoPlayer.MediaFailed, AddressOf VideoPlayer_MediaFailed
RemoveHandler VideoPlayer.MediaOpened, AddressOf VideoPlayer_MediaOpened
RemoveHandler VideoPlayer.RateChanged, AddressOf VideoPlayer_RateChanged
RemoveHandler VideoPlayer.SeekCompleted, AddressOf VideoPlayer_SeekCompleted
RemoveHandler VideoPlayer.VolumeChanged, AddressOf VideoPlayer_VolumeChanged
StatusTextBlock.Text = "Stopped '" & receiver.FriendlyName & "'."
End If
Catch
StatusTextBlock.Text = "Failed to stop '" & receiver.FriendlyName & "'."
End Try
End Sub
Os aplicativos PlayTo não serão suspensos enquanto o vídeo ou a música estiver sendo reproduzido no receptor Reproduzir para ou as imagens forem enviadas continuamente para o receptor Reproduzir para. Os aplicativos têm aproximadamente 10 segundos para enviar uma nova imagem depois que a atual é exibida e aproximadamente 10 segundos para enviar o próximo áudio ou vídeo após o término do atual.
Observação
Essa classe não é ágil, o que significa que você precisa considerar seu modelo de threading e o comportamento de marshaling. Para obter mais informações, consulte Threading and Marshaling (C++/CX) e Using Windows Runtime objects in a multithreaded environment (.NET).
Construtores
PlayToReceiver() |
Cria uma nova instância de um receptor Play To. |
Propriedades
FriendlyName |
Obtém ou define o nome de exibição do destino Reproduzir para. |
Properties |
Obtém um conjunto de propriedades personalizadas para o receptor Reproduzir para. |
SupportsAudio |
Obtém ou define um valor que indica se o destino Reproduzir para dá suporte a áudio. |
SupportsImage |
Obtém ou define um valor que indica se o destino Reproduzir para dá suporte a imagens. |
SupportsVideo |
Obtém ou define um valor que indica se o destino Reproduzir para dá suporte a vídeo. |
Métodos
NotifyDurationChange(TimeSpan) |
Notifica o receptor Play To de que a duração da reprodução de áudio ou vídeo foi alterada. |
NotifyEnded() |
Notifica o receptor Play To de que a reprodução de áudio ou vídeo terminou. |
NotifyError() |
Notifica o receptor Play To de que ocorreu um erro ao exibir ou reproduzir a mídia. |
NotifyLoadedMetadata() |
Notifica o receptor Play To de que os metadados para a mídia terminaram de ser carregados. |
NotifyPaused() |
Notifica o receptor Play To de que a reprodução de áudio ou vídeo foi pausada. |
NotifyPlaying() |
Notifica o receptor Play To de que a reprodução de áudio ou vídeo foi iniciada. |
NotifyRateChange(Double) |
Notifica o receptor Play To de que a taxa de reprodução de áudio ou vídeo foi alterada. |
NotifySeeked() |
Notifica o receptor Play To de que o elemento de reprodução de áudio ou vídeo foi iniciado em um novo local de reprodução. |
NotifySeeking() |
Notifica o receptor Play To de que o elemento de reprodução de áudio ou vídeo está buscando um novo local de reprodução. |
NotifyStopped() |
Notifica o receptor Play To de que a reprodução de áudio ou vídeo foi interrompida. |
NotifyTimeUpdate(TimeSpan) |
Notifica o receptor Play To de que o local de hora da reprodução de áudio ou vídeo foi alterado. |
NotifyVolumeChange(Double, Boolean) |
Notifica o receptor Play To de que o volume da reprodução de áudio ou vídeo foi alterado. |
StartAsync() |
Comece a receber comandos Reproduzir para. |
StopAsync() |
Pare de receber comandos Reproduzir para. |
Eventos
CurrentTimeChangeRequested |
Ocorre quando o local de hora da reprodução foi alterado. |
MuteChangeRequested |
Ocorre quando o áudio foi mudo ou desativado. |
PauseRequested |
Ocorre quando a reprodução de áudio ou vídeo foi pausada. |
PlaybackRateChangeRequested |
Ocorre quando a taxa de reprodução de áudio ou vídeo foi alterada. |
PlayRequested |
Ocorre quando a reprodução de áudio ou vídeo é iniciada. |
SourceChangeRequested |
Ocorre quando a mídia de origem do receptor Reproduzir para foi alterada. |
StopRequested |
Ocorre quando uma solicitação foi feita para o receptor reproduzir para parar de reproduzir a mídia transmitida. |
TimeUpdateRequested |
Ocorre quando a posição de reprodução atual foi alterada. |
VolumeChangeRequested |
Ocorre quando o volume do áudio ou vídeo de origem foi alterado. |