Freigeben über


PlayToReceiver Klasse

Definition

Stellt ein Play To-Ziel dar.

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
Vererbung
Object Platform::Object IInspectable PlayToReceiver
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
App-Funktionen
privateNetworkClientServer

Hinweise

Sie können die PlayToReceiver-Klasse verwenden, um einen benutzerdefinierten Softwarewiedergabeempfänger zu erstellen, der ein digitaler Medienrenderer für Computer in Ihrem Netzwerk ist. Sie können ein PlayToReceiver-Objekt in Ihre App einschließen, um die Kommunikation mit Play To-Clientcomputern zu verarbeiten, und dann Inhalte wiedergeben oder anzeigen, die von diesen Computern gestreamt werden, indem Sie ihre eigenen Medienelemente oder Steuerelemente verwenden.

Die Member der PlayToReceiver-Klasse bestehen aus den folgenden Elementen:

In Wiedergabe an beginnt das Video an der aktuellen Position. Wenn Sie das Video von Anfang an starten möchten, suchen Sie einfach zum Anfang des Videos, sobald die Verbindung "Wiedergabe zu" hergestellt ist.

Ein Beispiel zum Erstellen eines Softwarewiedergabeempfängers finden Sie unter Medienumwandlung.

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

PlayTo-Apps werden nicht angehalten, solange Videos oder Musik auf dem Wiedergabeempfänger wiedergegeben werden oder Bilder kontinuierlich an den Wiedergabeempfänger gesendet werden. Apps haben etwa 10 Sekunden Zeit, um ein neues Bild zu senden, nachdem das aktuelle Bild angezeigt wurde, und etwa 10 Sekunden, um das nächste Audio- oder Video zu senden, nachdem das aktuelle Bild beendet wurde.

Hinweis

Diese Klasse ist nicht agil, was bedeutet, dass Sie das Threadingmodell und das Marshallverhalten berücksichtigen müssen. Weitere Informationen finden Sie unter Threading and Marshaling (C++/CX) und Using Windows-Runtime objects in a multithreaded environment (.NET).

Konstruktoren

PlayToReceiver()

Erstellt eine neue instance eines Wiedergabeempfängers.

Eigenschaften

FriendlyName

Ruft den Anzeigenamen des Ziels "Wiedergeben auf" ab oder legt diesen fest.

Properties

Ruft einen Satz benutzerdefinierter Eigenschaften für den Wiedergabeempfänger ab.

SupportsAudio

Ruft einen Wert ab, der angibt, ob das Wiedergabeziel Audio unterstützt, oder legt diesen fest.

SupportsImage

Ruft einen Wert ab, der angibt, ob das Wiedergabeziel Bilder unterstützt, oder legt diesen fest.

SupportsVideo

Ruft einen Wert ab, der angibt, ob das Wiedergabeziel Video unterstützt, oder legt diesen fest.

Methoden

NotifyDurationChange(TimeSpan)

Benachrichtigt den Wiedergabeempfänger darüber, dass sich die Dauer der Audio- oder Videowiedergabe geändert hat.

NotifyEnded()

Benachrichtigt den Empfänger "Wiedergabe an", dass die Audio- oder Videowiedergabe beendet wurde.

NotifyError()

Benachrichtigt den Empfänger "Wiedergabe an", dass beim Anzeigen oder Wiedergeben der Medien ein Fehler aufgetreten ist.

NotifyLoadedMetadata()

Benachrichtigt den Empfänger "Wiedergabe an", dass das Laden der Metadaten für die Medien abgeschlossen ist.

NotifyPaused()

Benachrichtigt den Wiedergabeempfänger darüber, dass die Audio- oder Videowiedergabe angehalten wurde.

NotifyPlaying()

Benachrichtigt den Wiedergabeempfänger, dass die Audio- oder Videowiedergabe gestartet wurde.

NotifyRateChange(Double)

Benachrichtigt den Wiedergabeempfänger darüber, dass sich die Wiedergaberate der Audio- oder Videowiedergabe geändert hat.

NotifySeeked()

Benachrichtigt den Wiedergabeempfänger, dass das Audio- oder Videowiedergabeelement an einem neuen Wiedergabeort gestartet wurde.

NotifySeeking()

Benachrichtigt den Wiedergabeempfänger, dass das Audio- oder Videowiedergabeelement einen neuen Wiedergabeort sucht.

NotifyStopped()

Benachrichtigt den Empfänger "Wiedergabe an", dass die Audio- oder Videowiedergabe beendet wurde.

NotifyTimeUpdate(TimeSpan)

Benachrichtigt den Wiedergabeempfänger darüber, dass sich der Zeitort der Audio- oder Videowiedergabe geändert hat.

NotifyVolumeChange(Double, Boolean)

Benachrichtigt den Empfänger "Wiedergabe an", dass sich die Lautstärke der Audio- oder Videowiedergabe geändert hat.

StartAsync()

Beginnen Sie mit dem Empfang von "Play To"-Befehlen.

StopAsync()

Beenden sie den Empfang von Befehlen zum Wiedergeben von.

Ereignisse

CurrentTimeChangeRequested

Tritt auf, wenn sich der Zeitspeicherort der Wiedergabe geändert hat.

MuteChangeRequested

Tritt auf, wenn die Audiowiedergabe stummgeschaltet oder deaktiviert wurde.

PauseRequested

Tritt auf, wenn die Audio- oder Videowiedergabe angehalten wurde.

PlaybackRateChangeRequested

Tritt auf, wenn sich die Audio- oder Videowiedergaberate geändert hat.

PlayRequested

Tritt auf, wenn die Audio- oder Videowiedergabe gestartet wird.

SourceChangeRequested

Tritt auf, wenn sich die Quellmedien für den Wiedergabeempfänger geändert haben.

StopRequested

Tritt auf, wenn eine Anforderung für den Empfänger "Play To" gestellt wurde, die Wiedergabe der gestreamten Medien zu beenden.

TimeUpdateRequested

Tritt auf, wenn sich die aktuelle Wiedergabeposition geändert hat.

VolumeChangeRequested

Tritt auf, wenn sich die Lautstärke für das Quellaudio oder -video geändert hat.

Gilt für:

Weitere Informationen