PlayToSourceSelectedEventArgs Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет сведения о событии SourceSelected .
public ref class PlayToSourceSelectedEventArgs sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Deprecated("PlayToSourceSelectedEventArgs may be altered or unavailable for releases after Windows 10.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class PlayToSourceSelectedEventArgs final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Deprecated("PlayToSourceSelectedEventArgs may be altered or unavailable for releases after Windows 10.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Foundation.UniversalApiContract")]
class PlayToSourceSelectedEventArgs final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Deprecated("PlayToSourceSelectedEventArgs may be altered or unavailable for releases after Windows 10.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class PlayToSourceSelectedEventArgs
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Deprecated("PlayToSourceSelectedEventArgs may be altered or unavailable for releases after Windows 10.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class PlayToSourceSelectedEventArgs
Public NotInheritable Class PlayToSourceSelectedEventArgs
- Наследование
- Атрибуты
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
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
Пример использования play to в приложении см. в разделе PlayReady DRM.
Friendly |
Возвращает отображаемое имя выбранного источника воспроизведения. |
Icon |
Возвращает значок отображения для выбранного источника воспроизведения. |
Supports |
Возвращает значение, указывающее, поддерживает ли выбранный источник воспроизведения звук. |
Supports |
Возвращает значение, указывающее, поддерживает ли выбранный источник воспроизведения изображения. |
Supports |
Возвращает значение, указывающее, поддерживает ли выбранный источник воспроизведения видео. |
Продукт | Версии |
---|---|
WinRT | Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100 |