private async void receiver_TimeUpdateRequested(PlayToReceiver sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { receiver.NotifyTimeUpdate(VideoSource.Position); }); }
private async void receiver_MuteChangeRequested(PlayToReceiver sender, MuteChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { VideoSource.IsMuted = args.Mute; }); }
private void InitialisePlayToReceiver() { try { if (receiver == null) { receiver = new PlayToReceiver(); receiver.PlayRequested += new TypedEventHandler <PlayToReceiver, object>(receiver_PlayRequested); receiver.PauseRequested += new TypedEventHandler <PlayToReceiver, object>(receiver_PauseRequested); receiver.StopRequested += new TypedEventHandler <PlayToReceiver, object>(receiver_StopRequested); receiver.TimeUpdateRequested += new TypedEventHandler <PlayToReceiver, object>(receiver_TimeUpdateRequested); receiver.CurrentTimeChangeRequested += new TypedEventHandler <PlayToReceiver, CurrentTimeChangeRequestedEventArgs>(receiver_CurrentTimeChangeRequested); receiver.SourceChangeRequested += new TypedEventHandler <PlayToReceiver, SourceChangeRequestedEventArgs>(receiver_SourceChangeRequested); receiver.MuteChangeRequested += new TypedEventHandler <PlayToReceiver, MuteChangeRequestedEventArgs>(receiver_MuteChangeRequested); receiver.PlaybackRateChangeRequested += new TypedEventHandler <PlayToReceiver, PlaybackRateChangeRequestedEventArgs>(receiver_PlaybackRateChangeRequested); receiver.VolumeChangeRequested += new TypedEventHandler <PlayToReceiver, VolumeChangeRequestedEventArgs>(receiver_VolumeChangeRequested); receiver.SupportsAudio = true; receiver.SupportsVideo = true; receiver.SupportsImage = true; receiver.FriendlyName = "SDK CS Sample PlayToReceiver"; } } catch (Exception e) { startDMRButton.IsEnabled = false; stopDMRButton.IsEnabled = true; rootPage.NotifyUser("PlayToReceiver initialization failed, Error: " + e.Message, NotifyType.ErrorMessage); } }
async void receiver_SourceChangeRequested(PlayToReceiver sender, SourceChangeRequestedEventArgs args) { if (args.Stream != null) { if (args.Stream.ContentType.Contains("image")) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { BitmapImage bmp = new BitmapImage(); bmp.SetSource(args.Stream); PhotoSource.Source = bmp; ShowSelectedPanel(1); }); } else if (args.Stream.ContentType.Contains("video")) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { VideoSource.SetSource(args.Stream, args.Stream.ContentType); ShowSelectedPanel(3); }); } else if (args.Stream.ContentType.Contains("audio")) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { MusicSource.SetSource(args.Stream, args.Stream.ContentType); ShowSelectedPanel(2); MusicSource.Play(); }); } } }
private async void HandleStartReceiverClicked(Object sender, RoutedEventArgs e) { try { if (_receiver == null) { _receiver = new PlayToReceiver(); } // Set the Properties that describe this receiver device _receiver.FriendlyName = "Example Play To Receiver"; _receiver.SupportsAudio = true; _receiver.SupportsVideo = true; _receiver.SupportsImage = true; // Subscribe to Play To Receiver events // Receive the request from the Play To source // and map it to how it should be handled in this app _receiver.SourceChangeRequested += HandleReceiverSourceChangeRequested; // Playback commands _receiver.PlayRequested += HandleReceiverPlayRequested; _receiver.PauseRequested += HandleReceiverPauseRequested; _receiver.StopRequested += HandleReceiverStopRequested; _receiver.PlaybackRateChangeRequested += HandleReceiverPlaybackRateChangeRequested; // Seek commands _receiver.CurrentTimeChangeRequested += HandleReceiverCurrentTimeChangeRequested; _receiver.TimeUpdateRequested += HandleReceiverTimeUpdateRequested; // Volume commands _receiver.VolumeChangeRequested += HandleReceiverVolumeChangeRequested; _receiver.MuteChangeRequested += HandleReceiverMuteChangeRequested; // Advertise the receiver on the local network // and start receiving commands await _receiver.StartAsync(); // Use the DisplayRequest to prevent power-save // from interrupting the playback experience if (_displayRequest == null) { _displayRequest = new DisplayRequest(); _displayRequest.RequestActive(); } StatusText.Text = "'" + _receiver.FriendlyName + "' started."; } catch { _receiver = null; StatusText.Text = "Failed to start receiver."; } }
async void receiver_PlayRequested(PlayToReceiver sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { MusicSource.Play(); VideoSource.Play(); receiver.NotifyPlaying(); }); }
private async void receiver_VolumeChangeRequested(PlayToReceiver recv, VolumeChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { dmrVideo.Volume = args.Volume; } }); }
private async void receiver_CurrentTimeChangeRequested(PlayToReceiver sender, CurrentTimeChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (VideoSource.CanSeek) { { VideoSource.Position = args.Time; receiver.NotifySeeking(); } } }); }
private void HandleReceiverTimeUpdateRequested(PlayToReceiver sender, Object args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { _receiver.NotifyTimeUpdate(VideoPlayer.Position); } else if (_currentPlaybackType == PlaybackType.Image) { _receiver.NotifyTimeUpdate(new TimeSpan(0)); } }); }
private async void receiver_MuteChangeRequested(PlayToReceiver recv, MuteChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { dmrVideo.IsMuted = args.Mute; } else if (dmrImage != null && currentType == MediaType.Image) { receiver.NotifyVolumeChange(0, args.Mute); } }); }
private void HandleReceiverVolumeChangeRequested(PlayToReceiver sender, VolumeChangeRequestedEventArgs args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.Volume = args.Volume; // Receiver notification occurs in the HandleVideoPlayerVolumeChanged handler } else { _receiver.NotifyVolumeChange(args.Volume, args.Volume == 0); } }); }
private void HandleReceiverMuteChangeRequested(PlayToReceiver sender, MuteChangeRequestedEventArgs args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.IsMuted = args.Mute; // Receiver notification occurs in the HandleVideoPlayerVolumeChanged handler } else if (_currentPlaybackType == PlaybackType.Image) { _receiver.NotifyVolumeChange(0, args.Mute); } }); }
private void HandleReceiverPauseRequested(PlayToReceiver sender, Object args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.Pause(); // Receiver notification occurs in the HandleVideoPlayerCurrentStateChanged handler } else if (_currentPlaybackType == PlaybackType.Image) { _receiver.NotifyPaused(); } }); }
private void HandleReceiverSourceChangeRequested(PlayToReceiver sender, SourceChangeRequestedEventArgs args) { if (args.Stream != null) { var newStream = args.Stream; if (newStream.ContentType.Contains("image")) { Dispatch(() => ShowImageStream(newStream)); } else { Dispatch(() => ShowVideoStream(newStream)); } } }
private async void receiver_PlayRequested(PlayToReceiver recv, Object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { IsPlayReceivedPreMediaLoaded = true; dmrVideo.Play(); } else if (currentType == MediaType.Image) { dmrImage.Source = imagerevd; receiver.NotifyPlaying(); } }); }
private async void receiver_StopRequested(PlayToReceiver recv, Object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { dmrVideo.Stop(); receiver.NotifyStopped(); } else if (dmrImage != null && currentType == MediaType.Image) { dmrImage.Source = null; receiver.NotifyStopped(); } }); }
private void HandleReceiverStopRequested(PlayToReceiver sender, Object args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.Stop(); // Receiver notification occurs in the HandleVideoPlayerCurrentStateChanged handler } else if (_currentPlaybackType == PlaybackType.Image) { ImagePlayer.Source = null; _receiver.NotifyStopped(); } }); }
private void HandleReceiverPlaybackRateChangeRequested(PlayToReceiver sender, PlaybackRateChangeRequestedEventArgs args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.PlaybackRate = args.Rate; // Receiver notification occurs in the HandleVideoPlayerRateChanged handler } else if (_currentPlaybackType == PlaybackType.Image) { // Setting playback rate is a no-op in image playback. Just indicate it was accepted _receiver.NotifyRateChange(args.Rate); } }); }
private async void receiver_PlaybackRateChangeRequested(PlayToReceiver recv, PlaybackRateChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { if (dmrVideo.CurrentState != MediaElementState.Opening && dmrVideo.CurrentState != MediaElementState.Closed) { dmrVideo.PlaybackRate = args.Rate; } else { bufferedPlaybackRate = args.Rate; } } }); }
private async void receiver_TimeUpdateRequested(PlayToReceiver recv, Object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (IsReceiverStarted) { if (dmrVideo != null && currentType == MediaType.AudioVideo) { receiver.NotifyTimeUpdate(dmrVideo.Position); } else if (dmrImage != null && currentType == MediaType.Image) { receiver.NotifyTimeUpdate(new TimeSpan(0)); } } }); }
private async void receiver_PauseRequested(PlayToReceiver recv, Object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { if (dmrVideo.CurrentState == MediaElementState.Stopped) { receiver.NotifyPaused(); } else { dmrVideo.Pause(); } } }); }
private void HandleReceiverCurrentTimeChangeRequested(PlayToReceiver sender, CurrentTimeChangeRequestedEventArgs args) { Dispatch(() => { if (_currentPlaybackType == PlaybackType.Video) { VideoPlayer.Position = args.Time; _receiver.NotifySeeking(); // "Seeked" receiver notification occurs in the HandleVideoPlayerSeekCompleted handler _isSeeking = true; } else if (_currentPlaybackType == PlaybackType.Image) { // Seeking is a no-op in image playback. Just indicate it started and finished. _receiver.NotifySeeking(); _receiver.NotifySeeked(); } }); }
private async void receiver_CurrentTimeChangeRequested(PlayToReceiver recv, CurrentTimeChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (IsReceiverStarted) { if (dmrVideo != null && currentType == MediaType.AudioVideo) { if (dmrVideo.CanSeek) { dmrVideo.Position = args.Time; receiver.NotifySeeking(); IsSeeking = true; } } else if (currentType == MediaType.Image) { receiver.NotifySeeking(); receiver.NotifySeeked(); } } }); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { dispatcher = Window.Current.CoreWindow.Dispatcher; manager = PlayToManager.GetForCurrentView(); manager.SourceRequested += manager_SourceRequested; receiver = new PlayToReceiver(); receiver.PlayRequested += receiver_PlayRequested; receiver.PauseRequested += receiver_PauseRequested; receiver.StopRequested += receiver_StopRequested; receiver.MuteChangeRequested += receiver_MuteChangeRequested; receiver.VolumeChangeRequested += receiver_VolumeChangeRequested; receiver.TimeUpdateRequested += receiver_TimeUpdateRequested; receiver.CurrentTimeChangeRequested += receiver_CurrentTimeChangeRequested; receiver.SourceChangeRequested += receiver_SourceChangeRequested; receiver.PlaybackRateChangeRequested += receiver_PlaybackRateChangeRequested; receiver.SupportsAudio = true; receiver.SupportsVideo = true; receiver.SupportsImage = true; receiver.FriendlyName = "Day #22 - PlayTo"; await receiver.StartAsync(); }
private async void receiver_SourceChangeRequested(PlayToReceiver recv, SourceChangeRequestedEventArgs args) { IsPlayReceivedPreMediaLoaded = false; if (args.Stream == null) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (currentType == MediaType.AudioVideo && dmrVideo != null) { dmrVideo.Stop(); } else if (currentType == MediaType.Image && dmrImage != null) { dmrImage.Source = null; dmrImage.Opacity = 0; } currentType = MediaType.None; }); } else if (args.Stream.ContentType.Contains("image")) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { imagerevd = new BitmapImage(); imagerevd.ImageOpened += imagerevd_ImageOpened; imagerevd.SetSource(args.Stream); if (currentType != MediaType.Image) { if (currentType == MediaType.AudioVideo) { dmrVideo.Stop(); } dmrImage.Opacity = 1; dmrVideo.Opacity = 0; } currentType = MediaType.Image; }); } else { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { try { justLoadedMedia = true; dmrVideo.SetSource(args.Stream, args.Stream.ContentType); } catch (Exception exp) { rootPage.NotifyUser(exp.Message + " Content Type: " + args.Stream.ContentType, NotifyType.ErrorMessage); } if (currentType == MediaType.Image) { dmrImage.Opacity = 0; dmrVideo.Opacity = 1; dmrImage.Source = null; } currentType = MediaType.AudioVideo; }); } }