private async void receiver_PlaybackRateChangeRequested(PlayToReceiver sender, PlaybackRateChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { VideoSource.PlaybackRate = args.Rate; }); }
private async void receiver_TimeUpdateRequested(PlayToReceiver sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { receiver.NotifyTimeUpdate(VideoSource.Position); }); }
private async Task<bool> StartPlayTo() { try { this.dispatcher = Window.Current.CoreWindow.Dispatcher; if (this.receiver == null) { this.receiver = new PlayToReceiver(); } // Add Play To Receiver events and properties this.receiver.CurrentTimeChangeRequested += this.receiver_CurrentTimeChangeRequested; this.receiver.MuteChangeRequested += this.receiver_MuteChangeRequested; this.receiver.PauseRequested += this.receiver_PauseRequested; this.receiver.PlaybackRateChangeRequested += this.receiver_PlaybackRateChangeRequested; this.receiver.PlayRequested += this.receiver_PlayRequested; this.receiver.SourceChangeRequested += this.receiver_SourceChangeRequested; this.receiver.StopRequested += this.receiver_StopRequested; this.receiver.TimeUpdateRequested += this.receiver_TimeUpdateRequested; this.receiver.VolumeChangeRequested += this.receiver_VolumeChangeRequested; this.receiver.FriendlyName = "Advanced XAML PlayTo"; this.receiver.SupportsAudio = true; this.receiver.SupportsVideo = true; this.receiver.SupportsImage = true; // Add MediaElement events this.VideoPlayer.CurrentStateChanged += this.VideoPlayer_CurrentStateChanged; this.VideoPlayer.MediaEnded += this.VideoPlayer_MediaEnded; this.VideoPlayer.MediaFailed += this.VideoPlayer_MediaFailed; this.VideoPlayer.MediaOpened += this.VideoPlayer_MediaOpened; this.VideoPlayer.RateChanged += this.VideoPlayer_RateChanged; this.VideoPlayer.SeekCompleted += this.VideoPlayer_SeekCompleted; this.VideoPlayer.VolumeChanged += this.VideoPlayer_VolumeChanged; // Advertise the receiver on the local network and start receiving commands await this.receiver.StartAsync(); // Prevent the screen from locking if (this.display == null) { this.display = new DisplayRequest(); } this.display.RequestActive(); return true; } catch { this.receiver = null; return false; } }
private async void receiver_CurrentTimeChangeRequested(PlayToReceiver sender, CurrentTimeChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (VideoSource.CanSeek) { { VideoSource.Position = args.Time; receiver.NotifySeeking(); } } }); }
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_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 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; }); } }
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(); } } }); }
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 receiver_VolumeChangeRequested(PlayToReceiver sender, VolumeChangeRequestedEventArgs args) { await this.dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { this.VideoPlayer.Volume = args.Volume; }); }
private async void receiver_StopRequested(PlayToReceiver sender, object args) { await this.dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { this.VideoPlayer.Stop(); }); }
private async void receiver_CurrentTimeChangeRequested( PlayToReceiver sender, CurrentTimeChangeRequestedEventArgs args) { await this.dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { this.VideoPlayer.Position = args.Time; this.receiver.NotifySeeking(); this.seeking = true; }); }
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_PlayRequested(PlayToReceiver sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { MusicSource.Play(); VideoSource.Play(); receiver.NotifyPlaying(); }); }
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_VolumeChangeRequested(PlayToReceiver recv, VolumeChangeRequestedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { if (dmrVideo != null && currentType == MediaType.AudioVideo) { dmrVideo.Volume = args.Volume; } }); }
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_SourceChangeRequested(PlayToReceiver sender, SourceChangeRequestedEventArgs args) { if (args.Stream != null) { await this.dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { var stream = args.Stream as IRandomAccessStream; this.VideoPlayer.SetSource(stream, args.Stream.ContentType); }); } }
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 async void receiver_TimeUpdateRequested(PlayToReceiver sender, object args) { await this.dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { if (this.VideoPlayer.Position != null) { this.receiver.NotifyTimeUpdate(this.VideoPlayer.Position); } }); }
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 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)); } } }); }
public PlayToReceiverEvents(PlayToReceiver This) { this.This = This; }