PlayToReceiver クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
アプリの機能 |
privateNetworkClientServer
|
注釈
PlayToReceiver クラスを使用して、ネットワーク上のコンピューター用のデジタル メディア レンダラーであるカスタム ソフトウェア Play To レシーバーを作成できます。 PlayToReceiver オブジェクトをアプリに含め、Play To クライアント コンピューターとの通信を処理し、独自のメディア要素またはコントロールを使用してそれらのコンピューターからストリーミングされたコンテンツを再生または表示できます。
PlayToReceiver クラスのメンバーは、次のもので構成されます。
- ネットワーク上でアドバタイズされるときに Play To レシーバーの名前を識別する FriendlyName プロパティ。
- Play To レシーバーがサポートするメディアの種類を識別するプロパティ: SupportsAudio、 SupportsVideo、 SupportsImage。
- Play To レシーバーを起動し、ネットワーク上でデジタル メディア レンダラーとしてアドバタイズする StartAsync メソッド。 Play To レシーバーを停止し、ネットワーク上でのアドバタイズを停止する StopAsync メソッド。
- コンピューターからメディア ストリームを受信したときに発生する SourceChangeRequested イベントと、ボリュームの変更、ストリームメディアの再生場所の変更など、Play To クライアント コンピューターによってアクションが要求されたときに発生するイベント (CurrentTimeChangeRequested、MuteChangeRequested、PauseRequested、PlayRequested、StopRequested、VolumeChangeRequested、TimeUpdateRequested)。
- Play To レシーバーの変更が発生したときに Play To クライアントに通知するために呼び出すことができるメソッド: NotifyDurationChange、 NotifyEnded、 NotifyError、 NotifyLoadedMetadata、 NotifyPaused、 NotifyPlaying、 NotifyRateChange、 NotifySeeked、 NotifySeeking、 NotifyStopped、 NotifyTimeUpdate、 NotifyVolumeChange。
Play To では、ビデオは現在の位置から開始されます。 最初からビデオを開始する場合は、Play To 接続が確立されたらすぐにビデオの先頭に移動します。
ソフトウェアの Play To レシーバーを作成する例については、「 メディア キャスト」を参照してください。
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 アプリは、Play To レシーバーでビデオまたは音楽が再生されている限り、または画像が Play To レシーバーに継続的に送信されている限り、中断されません。 アプリは、現在の画像が表示された後に新しい画像を送信するのに約 10 秒、現在の画像が終了した後に次のオーディオまたはビデオを送信するのに約 10 秒です。
注意
このクラスはアジャイルではありません。つまり、スレッド モデルとマーシャリング動作を考慮する必要があります。 詳細については、「スレッド処理とマーシャリング (C++/CX)」および「マルチスレッド環境でのWindows ランタイム オブジェクトの使用 (.NET)」を参照してください。
コンストラクター
PlayToReceiver() |
Play To レシーバーの新しいインスタンスを作成します。 |
プロパティ
FriendlyName |
Play To ターゲットの表示名を取得または設定します。 |
Properties |
Play To レシーバーのカスタム プロパティのセットを取得します。 |
SupportsAudio |
Play To ターゲットがオーディオをサポートするかどうかを示す値を取得または設定します。 |
SupportsImage |
Play To ターゲットがイメージをサポートするかどうかを示す値を取得または設定します。 |
SupportsVideo |
Play To ターゲットがビデオをサポートするかどうかを示す値を取得または設定します。 |
メソッド
NotifyDurationChange(TimeSpan) |
オーディオまたはビデオの再生時間が変更されたことを再生受信者に通知します。 |
NotifyEnded() |
オーディオまたはビデオの再生が終了したことを再生受信者に通知します。 |
NotifyError() |
メディアの表示または再生中にエラーが発生したことを Play To レシーバーに通知します。 |
NotifyLoadedMetadata() |
メディアのメタデータの読み込みが完了したことを Play To レシーバーに通知します。 |
NotifyPaused() |
オーディオまたはビデオの再生が一時停止されたことを再生受信者に通知します。 |
NotifyPlaying() |
オーディオまたはビデオの再生が開始されたことを再生受信者に通知します。 |
NotifyRateChange(Double) |
オーディオまたはビデオの再生速度が変更されたことを再生受信者に通知します。 |
NotifySeeked() |
オーディオまたはビデオ再生要素が新しい再生場所で開始されたことを再生先レシーバーに通知します。 |
NotifySeeking() |
オーディオまたはビデオ再生要素が新しい再生場所をシークしていることを再生先レシーバーに通知します。 |
NotifyStopped() |
オーディオまたはビデオの再生が停止したことを再生受信者に通知します。 |
NotifyTimeUpdate(TimeSpan) |
オーディオまたはビデオの再生の時刻の場所が変更されたことを再生先レシーバーに通知します。 |
NotifyVolumeChange(Double, Boolean) |
オーディオまたはビデオの再生の音量が変更されたことを再生受信者に通知します。 |
StartAsync() |
Play To コマンドの受信を開始します。 |
StopAsync() |
Play To コマンドの受信を停止します。 |
イベント
CurrentTimeChangeRequested |
再生の時刻の場所が変更されたときに発生します。 |
MuteChangeRequested |
オーディオがミュートまたはミュート解除されたときに発生します。 |
PauseRequested |
オーディオまたはビデオの再生が一時停止されたときに発生します。 |
PlaybackRateChangeRequested |
オーディオまたはビデオの再生速度が変更されたときに発生します。 |
PlayRequested |
オーディオまたはビデオの再生が開始されたときに発生します。 |
SourceChangeRequested |
Play To レシーバーのソース メディアが変更されたときに発生します。 |
StopRequested |
ストリーミングされたメディアの再生を停止する再生受信者に対して要求が行われたときに発生します。 |
TimeUpdateRequested |
現在の再生位置が変更されたときに発生します。 |
VolumeChangeRequested |
ソース オーディオまたはビデオのボリュームが変更されたときに発生します。 |