PlayToReceiver Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili target Putar Ke.
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
- Warisan
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Kemampuan aplikasi |
privateNetworkClientServer
|
Keterangan
Anda dapat menggunakan kelas PlayToReceiver untuk membuat perangkat lunak kustom Play To receiver yang merupakan perender media digital untuk komputer di jaringan Anda. Anda dapat menyertakan objek PlayToReceiver di aplikasi untuk menangani komunikasi dengan komputer klien Play To, lalu memutar atau menampilkan konten yang dialirkan dari komputer tersebut menggunakan elemen atau kontrol media Anda sendiri.
Anggota kelas PlayToReceiver terdiri dari yang berikut ini:
- Properti FriendlyName yang mengidentifikasi nama penerima Play To ketika diiklankan di jaringan.
- Properti yang mengidentifikasi jenis media yang didukung penerima Play To Anda: SupportsAudio, SupportsVideo, SupportsImage.
- Metode StartAsync yang memulai penerima Play To dan mengiklankannya di jaringan sebagai perender media digital. Metode StopAsync yang menghentikan penerima Play To dan berhenti mengiklankannya di jaringan.
- Peristiwa SourceChangeRequested yang terjadi saat Anda menerima aliran media dari komputer, dan peristiwa yang terjadi ketika tindakan diminta oleh komputer klien Play To seperti perubahan volume, atau perubahan lokasi pemutaran media yang dialirkan: CurrentTimeChangeRequested, MuteChangeRequested, PauseRequested, PlayRequested, StopRequested, VolumeChangeRequested, TimeUpdateRequested.
- Metode yang dapat Anda panggil untuk memberi tahu klien Play To ketika perubahan terjadi untuk penerima Play To Anda: NotifyDurationChange, NotifyEnded, NotifyError, NotifyLoadedMetadata, NotifyPaused, NotifyPlaying, NotifyRateChange, NotifySeeked, NotifySeeking, NotifyStopped, NotifyTimeUpdate, NotifyVolumeChange.
Di Putar Ke, video dimulai dari posisi saat ini. Jika Anda ingin memulai video dari awal, cukup cari ke awal video segera setelah koneksi Putar Ke dibuat.
Untuk contoh pembuatan perangkat lunak Play To receiver, lihat Transmisi media.
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
Aplikasi PlayTo tidak akan ditangguhkan selama video atau musik diputar di penerima Play To atau gambar terus dikirim ke penerima Play To. Aplikasi memiliki sekitar 10 detik untuk mengirim gambar baru setelah gambar saat ini ditampilkan dan sekitar 10 detik untuk mengirim audio atau video berikutnya setelah yang saat ini berakhir.
Catatan
Kelas ini tidak tangkas, yang berarti Anda perlu mempertimbangkan model utas dan perilaku marshalingnya. Untuk informasi selengkapnya, lihat Threading dan Marshaling (C++/CX) dan Menggunakan objek Windows Runtime di lingkungan multithreaded (.NET).
Konstruktor
PlayToReceiver() |
Membuat instans baru penerima Play To. |
Properti
FriendlyName |
Mendapatkan atau mengatur nama tampilan target Putar Ke. |
Properties |
Mendapatkan sekumpulan properti kustom untuk penerima Play To. |
SupportsAudio |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah target Putar Ke mendukung audio. |
SupportsImage |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah target Play To mendukung gambar. |
SupportsVideo |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah target Putar Ke mendukung video. |
Metode
NotifyDurationChange(TimeSpan) |
Memberi tahu penerima Play To bahwa durasi pemutaran audio atau video telah berubah. |
NotifyEnded() |
Memberi tahu penerima Putar Ke bahwa pemutaran audio atau video telah berakhir. |
NotifyError() |
Memberi tahu penerima Play To bahwa terjadi kesalahan saat menampilkan atau memutar media. |
NotifyLoadedMetadata() |
Memberi tahu penerima Play To bahwa metadata untuk media telah selesai dimuat. |
NotifyPaused() |
Memberi tahu penerima Putar Ke bahwa pemutaran audio atau video telah dijeda. |
NotifyPlaying() |
Memberi tahu penerima Putar Ke bahwa pemutaran audio atau video telah dimulai. |
NotifyRateChange(Double) |
Memberi tahu penerima Play To bahwa laju pemutaran audio atau video telah berubah. |
NotifySeeked() |
Memberi tahu penerima Play To bahwa elemen pemutaran audio atau video telah dimulai di lokasi pemutaran baru. |
NotifySeeking() |
Memberi tahu penerima Play To bahwa elemen pemutaran audio atau video mencari lokasi pemutaran baru. |
NotifyStopped() |
Memberi tahu penerima Putar Ke bahwa pemutaran audio atau video telah berhenti. |
NotifyTimeUpdate(TimeSpan) |
Memberi tahu penerima Putar Ke bahwa lokasi waktu pemutaran audio atau video telah berubah. |
NotifyVolumeChange(Double, Boolean) |
Memberi tahu penerima Play To bahwa volume pemutaran audio atau video telah berubah. |
StartAsync() |
Mulai menerima perintah Play To. |
StopAsync() |
Berhenti menerima perintah Play To. |
Acara
CurrentTimeChangeRequested |
Terjadi ketika lokasi waktu pemutaran telah berubah. |
MuteChangeRequested |
Terjadi saat audio telah dimatikan suaranya atau dinyalakan suaranya. |
PauseRequested |
Terjadi ketika pemutaran audio atau video telah dijeda. |
PlaybackRateChangeRequested |
Terjadi ketika laju pemutaran audio atau video telah berubah. |
PlayRequested |
Terjadi saat pemutaran audio atau video dimulai. |
SourceChangeRequested |
Terjadi ketika media sumber untuk penerima Play To telah berubah. |
StopRequested |
Terjadi ketika permintaan telah dibuat untuk penerima Play To untuk berhenti memutar media yang dialirkan. |
TimeUpdateRequested |
Terjadi ketika posisi pemutaran saat ini telah berubah. |
VolumeChangeRequested |
Terjadi ketika volume untuk audio atau video sumber telah berubah. |