예제 #1
0
        void Player(LiveStreamPlayerState state)
        {
            if (SelectedRoom == null)
            {
                return;
            }

            switch (state)
            {
            case LiveStreamPlayerState.Play:
                State = LiveStreamPlayerState.Play;
                break;

            case LiveStreamPlayerState.Pause:
                State = LiveStreamPlayerState.Pause;
                break;

            case LiveStreamPlayerState.Stop:
                State = LiveStreamPlayerState.Stop;
                break;

            case LiveStreamPlayerState.ExternalMediaPlayer:
                State = LiveStreamPlayerState.ExternalMediaPlayer;
                PlayVideoFeed(SelectedRoom);
                break;
            }
        }
예제 #2
0
        void ChangePlayerState(string url, LiveStreamPlayerState state)
        {
            switch (state)
            {
            case LiveStreamPlayerState.Play:
                if (string.IsNullOrEmpty(url))
                {
                    if (Player.SourceProvider.MediaPlayer.State == MediaStates.Playing)
                    {
                        Player.SourceProvider.MediaPlayer.Stop();
                    }
                    _currentVideoUrl = null;
                }
                else
                {
                    if (_currentVideoUrl == url)
                    {
                        if (Player.SourceProvider.MediaPlayer.State == MediaStates.Paused)
                        {
                            Player.SourceProvider.MediaPlayer.Play();
                        }
                    }
                    else
                    {
                        if (Player.SourceProvider.MediaPlayer.State == MediaStates.Playing)
                        {
                            Player.SourceProvider.MediaPlayer.Stop();
                        }

                        Player.SourceProvider.MediaPlayer.Play(new Uri(url, UriKind.Absolute));
                        _currentVideoUrl = url;
                    }
                }

                break;

            case LiveStreamPlayerState.ExternalMediaPlayer:
                if (Player.SourceProvider.MediaPlayer.State == MediaStates.Playing || Player.SourceProvider.MediaPlayer.State == MediaStates.Paused)
                {
                    Player.SourceProvider.MediaPlayer.Stop();
                }
                break;

            case LiveStreamPlayerState.Stop:
                if (Player.SourceProvider.MediaPlayer.State == MediaStates.Playing || Player.SourceProvider.MediaPlayer.State == MediaStates.Paused)
                {
                    Player.SourceProvider.MediaPlayer.Stop();
                }
                _currentVideoUrl = null;
                break;

            case LiveStreamPlayerState.Pause:
                if (Player.SourceProvider.MediaPlayer.State == MediaStates.Playing)
                {
                    Player.SourceProvider.MediaPlayer.Pause();
                }
                break;
            }
        }