PlayToReceiver Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una destinazione Play To.
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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Funzionalità dell'app |
privateNetworkClientServer
|
Commenti
È possibile usare la classe PlayToReceiver per creare un ricevitore Play To software personalizzato che sia un renderer multimediale digitale per i computer della rete. Puoi includere un oggetto PlayToReceiver nella tua app per gestire la comunicazione con i computer client Play To e quindi riprodurre o visualizzare contenuti trasmessi da tali computer usando elementi multimediali o controlli personalizzati.
I membri della classe PlayToReceiver sono costituiti dai seguenti:
- Proprietà FriendlyName che identifica il nome del ricevitore Play To quando viene annunciato in rete.
- Proprietà che identificano il tipo di supporto supportato dal ricevitore Play To: SupportsAudio, SupportsVideo, SupportsImage.
- Il metodo StartAsync che avvia il ricevitore Play To e lo annuncia in rete come renderer multimediale digitale. Il metodo StopAsync che arresta il ricevitore Play To e arresta la pubblicità sulla rete.
- Evento SourceChangeRequested che si verifica quando si riceve un flusso multimediale da un computer e gli eventi che si verificano quando viene richiesta un'azione dal computer client Play To, ad esempio una modifica del volume o una modifica nel percorso di riproduzione del supporto trasmesso: CurrentTimeChangeRequested, MuteChangeRequested, PauseRequested, PlayRequested, StopRequested, VolumeChangeRequested, TimeUpdateRequested.
- Metodi che è possibile chiamare per notificare al client Play To quando si verifica una modifica per il ricevitore Play To: NotifyDurationChange, NotifyEnded, NotifyError, NotifyLoadedMetadata, NotifyPaused, NotifyPlaying, NotifyRateChange, NotifySeeked, NotifySeeked, NotifySeeking, NotifyStopped, NotifyTimeUpdate, NotifyVolumeChange.
In Riproduci a, il video inizia dalla posizione corrente. Se vuoi avviare il video dall'inizio, cerca semplicemente l'inizio del video non appena viene stabilita la connessione Play To.
Per un esempio di creazione di un ricevitore Play To software, vedere Cast multimediale.
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
Le app PlayTo non verranno sospese finché il video o la musica viene riprodotta nel ricevitore Play To o le immagini vengono inviate continuamente al ricevitore Play To. Le app hanno circa 10 secondi per inviare una nuova immagine dopo la visualizzazione di quella corrente e circa 10 secondi per inviare l'audio o il video successivo dopo che quello corrente è terminato.
Nota
Questa classe non è agile, il che significa che è necessario considerare il modello di threading e il comportamento di marshalling. Per altre informazioni, vedere Threading e marshalling (C++/CX) e Uso di oggetti Windows Runtime in un ambiente multithreading (.NET).
Costruttori
PlayToReceiver() |
Crea una nuova istanza di un ricevitore Play To. |
Proprietà
FriendlyName |
Ottiene o imposta il nome visualizzato della destinazione Play To. |
Properties |
Ottiene un set di proprietà personalizzate per il ricevitore Play To. |
SupportsAudio |
Ottiene o imposta un valore che indica se la destinazione Play To supporta l'audio. |
SupportsImage |
Ottiene o imposta un valore che indica se la destinazione Play To supporta le immagini. |
SupportsVideo |
Ottiene o imposta un valore che indica se la destinazione Play To supporta il video. |
Metodi
NotifyDurationChange(TimeSpan) |
Notifica al ricevitore Play To che la durata della riproduzione audio o video è cambiata. |
NotifyEnded() |
Notifica al ricevitore Play To che la riproduzione audio o video è terminata. |
NotifyError() |
Notifica al ricevitore Play To che si è verificato un errore durante la visualizzazione o la riproduzione del supporto. |
NotifyLoadedMetadata() |
Notifica al ricevitore Play To che i metadati per il supporto hanno terminato il caricamento. |
NotifyPaused() |
Notifica al ricevitore Play To che la riproduzione audio o video è stata sospesa. |
NotifyPlaying() |
Notifica al ricevitore Play To che la riproduzione audio o video è stata avviata. |
NotifyRateChange(Double) |
Notifica al ricevitore Play To che la frequenza della riproduzione audio o video è cambiata. |
NotifySeeked() |
Notifica al ricevitore Play To che l'elemento di riproduzione audio o video è stato avviato in una nuova posizione di riproduzione. |
NotifySeeking() |
Notifica al ricevitore Play To che l'elemento di riproduzione audio o video sta cercando una nuova posizione di riproduzione. |
NotifyStopped() |
Notifica al ricevitore Play To che la riproduzione audio o video è stata arrestata. |
NotifyTimeUpdate(TimeSpan) |
Notifica al ricevitore Play To che la posizione dell'ora della riproduzione audio o video è cambiata. |
NotifyVolumeChange(Double, Boolean) |
Notifica al ricevitore Play To che il volume della riproduzione audio o video è cambiato. |
StartAsync() |
Iniziare a ricevere i comandi Play To. |
StopAsync() |
Interrompere la ricezione dei comandi Play To. |
Eventi
CurrentTimeChangeRequested |
Si verifica quando la posizione dell'ora della riproduzione è cambiata. |
MuteChangeRequested |
Si verifica quando l'audio è stato disattivato o non è stato modificato. |
PauseRequested |
Si verifica quando la riproduzione audio o video è stata sospesa. |
PlaybackRateChangeRequested |
Si verifica quando la frequenza di riproduzione audio o video è cambiata. |
PlayRequested |
Si verifica all'avvio della riproduzione audio o video. |
SourceChangeRequested |
Si verifica quando il supporto di origine per il ricevitore Play To è stato modificato. |
StopRequested |
Si verifica quando è stata effettuata una richiesta per il ricevitore Play To per interrompere la riproduzione dei supporti trasmessi. |
TimeUpdateRequested |
Si verifica quando la posizione di riproduzione corrente è cambiata. |
VolumeChangeRequested |
Si verifica quando il volume per l'audio o il video di origine è stato modificato. |