Inheritance: IPlayToReceiver
示例#1
0
 private async void receiver_PlaybackRateChangeRequested(PlayToReceiver sender, PlaybackRateChangeRequestedEventArgs args)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         VideoSource.PlaybackRate = args.Rate;
     });
 }
示例#2
0
 private async void receiver_TimeUpdateRequested(PlayToReceiver sender, object args)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         receiver.NotifyTimeUpdate(VideoSource.Position);
     });
 }
示例#3
0
        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;
            }
        }
示例#4
0
 private async void receiver_CurrentTimeChangeRequested(PlayToReceiver sender, CurrentTimeChangeRequestedEventArgs args)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         if (VideoSource.CanSeek)
         {
             {
                 VideoSource.Position = args.Time;
                 receiver.NotifySeeking();
             }
         }
     });
 }
示例#5
0
        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();
             }
         }
     });
 }
示例#9
0
 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();
             });
         }
     }
 }
示例#10
0
 private async void receiver_VolumeChangeRequested(PlayToReceiver sender, VolumeChangeRequestedEventArgs args)
 {
     await
         this.dispatcher.RunAsync(
             CoreDispatcherPriority.Normal, () => { this.VideoPlayer.Volume = args.Volume; });
 }
示例#11
0
 private async void receiver_StopRequested(PlayToReceiver sender, object args)
 {
     await this.dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { this.VideoPlayer.Stop(); });
 }
示例#12
0
 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);
            }
        }
示例#14
0
 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();
         }
     });
 }
示例#18
0
 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();
             }
         }
     });
 }
示例#20
0
 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;
 }