Condividi tramite


PlayToConnection Classe

Definizione

Fornisce informazioni su una connessione Play To.

public ref class PlayToConnection sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Deprecated("PlayToConnection may be altered or unavailable for releases after Windows 10. Instead, use CastingConnection.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PlayToConnection final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Deprecated("PlayToConnection may be altered or unavailable for releases after Windows 10. Instead, use CastingConnection.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Foundation.UniversalApiContract")]
class PlayToConnection final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Deprecated("PlayToConnection may be altered or unavailable for releases after Windows 10. Instead, use CastingConnection.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PlayToConnection
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Deprecated("PlayToConnection may be altered or unavailable for releases after Windows 10. Instead, use CastingConnection.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class PlayToConnection
Public NotInheritable Class PlayToConnection
Ereditarietà
Object Platform::Object IInspectable PlayToConnection
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)

Esempio

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

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

 private void sourceRequestHandlerWithEvents(
 Windows.Media.PlayTo.PlayToManager sender,
 Windows.Media.PlayTo.PlayToSourceRequestedEventArgs e)
 {
     try
     {
         var controller = mediaElement.PlayToSource;

         controller.Connection.Error += playToConnectionError;
         controller.Connection.StateChanged += playToConnectionStageChanged;
         controller.Connection.Transferred += playToConnectionTransferred;

         e.SourceRequest.SetSource(controller);
     }
     catch (Exception ex)
     {
         messageBlock.Text += "Exception encountered: " + ex.Message + "\n";
     }
 }

 // Called when the user selects a Play To device to stream to.

 private void sourceSelectedHandler(
     Windows.Media.PlayTo.PlayToManager sender,
     Windows.Media.PlayTo.PlayToSourceSelectedEventArgs e)
 {
     if (mediaElement.Name == "iplayer") {
         if (!e.SupportsImage) {
             messageBlock.Text += e.FriendlyName + " does not support streaming images. " +
                                  "Please select a different device.";
             return;
         }
     }

     if (mediaElement.Name == "vplayer") {
         if (!e.SupportsVideo) {
             messageBlock.Text += e.FriendlyName + " does not support streaming video. " +
                                  "Please select a different device.";
             return;
         }
     }

     if (mediaElement.Name == "aplayer") {
         if (!e.SupportsAudio) {
             messageBlock.Text += e.FriendlyName + " does not support streaming audio. " +
                                  "Please select a different device.";
             return;
         }
     }

     Windows.Storage.Streams.IRandomAccessStream iconStream = e.Icon;
     Windows.UI.Xaml.Media.Imaging.BitmapImage iconBitmap = 
             new Windows.UI.Xaml.Media.Imaging.BitmapImage();
     iconBitmap.SetSource(iconStream);
     playToDeviceIconImage.Source = iconBitmap;

     playToDeviceFriendlyNameBlock.Text = e.FriendlyName;
 }

 private void playToConnectionError(
     Windows.Media.PlayTo.PlayToConnection connection,
     Windows.Media.PlayTo.PlayToConnectionErrorEventArgs e)
 {
     if (e.Code == Windows.Media.PlayTo.PlayToConnectionError.DeviceError ||
         e.Code == Windows.Media.PlayTo.PlayToConnectionError.DeviceNotResponding) 
     {
         messageBlock.Text += "Error occurred. Disconnecting.\n";
     }

     messageBlock.Text += "Error: Message = " + e.Message.ToString() + "\n";
 }

private void playToConnectionStageChanged(
    Windows.Media.PlayTo.PlayToConnection connection, 
    Windows.Media.PlayTo.PlayToConnectionStateChangedEventArgs e) 
 {
     messageBlock.Text += "StateChanged: PreviousState = " + e.PreviousState.ToString() + "\n";
     messageBlock.Text += "StateChanged: CurrentState = " + e.CurrentState.ToString() + "\n";
 }

private void playToConnectionTransferred(
    Windows.Media.PlayTo.PlayToConnection connection, 
    Windows.Media.PlayTo.PlayToConnectionTransferredEventArgs e)
 {
     messageBlock.Text += "Transferred: PreviousSource = " + e.PreviousSource.ToString() + "\n";
     messageBlock.Text += "Transferred: CurrentSource = " + e.CurrentSource.ToString() + "\n";
 }
Private ptm As Windows.Media.PlayTo.PlayToManager =
        Windows.Media.PlayTo.PlayToManager.GetForCurrentView()

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

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

    Try
        Dim controller = mediaElement.PlayToSource

        AddHandler controller.Connection.Error, AddressOf playToConnectionError
        AddHandler controller.Connection.StateChanged, AddressOf playToConnectionStageChanged
        AddHandler controller.Connection.Transferred, AddressOf playToConnectionTransferred

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

' Called when the user selects a Play To device to stream to.

Private Sub sourceSelectedHandler(
    sender As Windows.Media.PlayTo.PlayToManager,
    e As Windows.Media.PlayTo.PlayToSourceSelectedEventArgs)

    If mediaElement.Name = "iplayer" Then
        If Not e.SupportsImage Then
            messageBlock.Text &= e.FriendlyName & " does not support streaming images. " &
                                 "Please select a different device."
            Return
        End If
    End If

    If mediaElement.Name = "vplayer" Then
        If Not e.SupportsVideo Then
            messageBlock.Text &= e.FriendlyName & " does not support streaming video. " &
                                 "Please select a different device."
            Return
        End If
    End If

    If mediaElement.Name = "aplayer" Then
        If Not e.SupportsAudio Then
            messageBlock.Text &= e.FriendlyName & " does not support streaming audio. " &
                                 "Please select a different device."
            Return
        End If
    End If

    Dim iconStream = e.Icon
    Dim iconBitmap = New Windows.UI.Xaml.Media.Imaging.BitmapImage()
    iconBitmap.SetSource(iconStream)
    playToDeviceIconImage.Source = iconBitmap

    playToDeviceFriendlyNameBlock.Text = e.FriendlyName
End Sub

Private Sub playToConnectionError(
    connection As Windows.Media.PlayTo.PlayToConnection,
    e As Windows.Media.PlayTo.PlayToConnectionErrorEventArgs)

    If e.Code = Windows.Media.PlayTo.PlayToConnectionError.DeviceError OrElse
        e.Code = Windows.Media.PlayTo.PlayToConnectionError.DeviceNotResponding Then

        messageBlock.Text &= "Error occurred. Disconnecting." & vbCrLf
    End If

    messageBlock.Text &= "Error: Message = " & e.Message.ToString() & vbCrLf
End Sub

Private Sub playToConnectionStageChanged(
    connection As Windows.Media.PlayTo.PlayToConnection,
    e As Windows.Media.PlayTo.PlayToConnectionStateChangedEventArgs)

    messageBlock.Text &= "StateChanged: PreviousState = " & e.PreviousState.ToString() & vbCrLf
    messageBlock.Text &= "StateChanged: CurrentState = " & e.CurrentState.ToString() & vbCrLf
End Sub

Private Sub playToConnectionTransferred(
    connection As Windows.Media.PlayTo.PlayToConnection,
    e As Windows.Media.PlayTo.PlayToConnectionTransferredEventArgs)

    messageBlock.Text &= "Transferred: PreviousSource = " & e.PreviousSource.ToString() & vbCrLf
    messageBlock.Text &= "Transferred: CurrentSource = " & e.CurrentSource.ToString() & vbCrLf
End Sub

Commenti

Per un esempio di come usare Play To in un'applicazione, vedere PlayReady DRM.

Proprietà

State

Ottiene lo stato della connessione Play To.

Eventi

Error

Si verifica quando viene rilevato un errore per la connessione Play To.

StateChanged

Si verifica quando lo stato della connessione Play To è cambiato.

Transferred

Si verifica quando la connessione Play To viene trasferita all'origine Play To successiva.

Si applica a

Vedi anche