void StateRequested(object?sender, StateRequested e)
        {
            if (Control != null)
            {
                switch (e.State)
                {
                case MediaElementState.Playing:
                    Control.Play();
                    break;

                case MediaElementState.Paused:
                    if (Control.CanPause)
                    {
                        Control.Pause();
                    }
                    break;

                case MediaElementState.Stopped:
                    Control.Stop();
                    break;
                }

                Controller.Position = Control.Position;
            }
        }
示例#2
0
        void StateRequested(object sender, StateRequested e)
        {
            if (_view == null)
            {
                return;
            }

            switch (e.State)
            {
            case MediaElementState.Playing:
                _view.Start();
                Controller.CurrentState = _view.IsPlaying ? MediaElementState.Playing : MediaElementState.Stopped;
                break;

            case MediaElementState.Paused:
                if (_view.CanPause())
                {
                    _view.Pause();
                    Controller.CurrentState = MediaElementState.Paused;
                }
                break;

            case MediaElementState.Stopped:
                _view.Pause();
                _view.SeekTo(0);

                Controller.CurrentState = _view.IsPlaying ? MediaElementState.Playing : MediaElementState.Stopped;
                break;
            }

            UpdateLayoutParameters();
            Controller.Position = _view.Position;
        }
示例#3
0
        protected void OnStateRequested(object sender, StateRequested e)
        {
            switch (e.State)
            {
            case MediaElementState.Playing:
                _player.Start();
                break;

            case MediaElementState.Paused:
                _player.Pause();
                break;

            case MediaElementState.Stopped:
                _player.Stop();
                break;
            }
        }
示例#4
0
        private void MediaElement_StateRequested(object sender, StateRequested e)
        {
            VisualStateManager.GoToState(PlayPauseToggle,
                                         (e.State == MediaElementState.Playing)
                ? "playing"
                : "paused");

            if (e.State == MediaElementState.Playing)
            {
                _playbackTimer.Stop();
                _playbackTimer.Start();
            }
            else if (e.State == MediaElementState.Paused || e.State == MediaElementState.Stopped)
            {
                _playbackTimer.Stop();
            }
        }
        void MediaElementStateRequested(object?sender, StateRequested e)
        {
            switch (e.State)
            {
            case MediaElementState.Playing:
                Play();
                break;

            case MediaElementState.Paused:
                if (Element.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }

                if (avPlayerViewController.Player != null)
                {
                    avPlayerViewController.Player.Pause();
                    Controller.CurrentState = MediaElementState.Paused;
                }
                break;

            case MediaElementState.Stopped:
                if (Element.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }

                // iOS has no stop...
                avPlayerViewController.Player?.Pause();
                avPlayerViewController.Player?.Seek(CMTime.Zero);
                Controller.CurrentState = MediaElementState.Stopped;

                var err = AVAudioSession.SharedInstance().SetActive(false);

                if (err != null)
                {
                    Log.Warning("MediaElement", "Failed to set AVAudioSession Inactive {0}", err.Code);
                }

                break;
            }

            Controller.Position = Position;
        }
        void MediaElementStateRequested(object sender, StateRequested e)
        {
            MediaElementVolumeRequested(this, EventArgs.Empty);

            switch (e.State)
            {
            case MediaElementState.Playing:
                Play();
                break;

            case MediaElementState.Paused:
                if (Element.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }

                if (_avPlayerViewController.Player != null)
                {
                    _avPlayerViewController.Player.Pause();
                    Controller.CurrentState = MediaElementState.Paused;
                }
                break;

            case MediaElementState.Stopped:
                if (Element.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }
                //ios has no stop...
                _avPlayerViewController?.Player.Pause();
                _avPlayerViewController?.Player.Seek(CMTime.Zero);
                Controller.CurrentState = MediaElementState.Stopped;

                NSError err = AVAudioSession.SharedInstance().SetActive(false);
                if (!(err is null))
                {
                    Log.Warning("MediaElement", "Failed to set AVAudioSession Inactive {0}", err.Code);
                }
                break;
            }

            Controller.Position = Position;
        }
示例#7
0
        void ElementStateRequested(object sender, StateRequested e)
        {
            _requestedState = e.State;

            switch (e.State)
            {
            case MediaElementState.Playing:
                if (Element.KeepScreenOn)
                {
                    DisplayRequestActive();
                }

                Control.Play();
                Controller.CurrentState = _requestedState;
                break;

            case MediaElementState.Paused:
                if (Control.CanPause)
                {
                    if (Element.KeepScreenOn)
                    {
                        DisplayRequestRelease();
                    }

                    Control.Pause();
                    Controller.CurrentState = _requestedState;
                }
                break;

            case MediaElementState.Stopped:
                if (Element.KeepScreenOn)
                {
                    DisplayRequestRelease();
                }

                Control.Stop();
                Controller.CurrentState = _requestedState;
                break;
            }

            Controller.Position = Control.Position;
        }
示例#8
0
        void MediaElementStateRequested(object sender, StateRequested e)
        {
            MediaElementVolumeRequested(this, EventArgs.Empty);

            switch (e.State)
            {
            case MediaElementState.Playing:
                Play();
                break;

            case MediaElementState.Paused:
                if (MediaElement.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }

                if (Player != null)
                {
                    Player.Pause();
                    Controller.CurrentState = MediaElementState.Paused;
                }
                break;

            case MediaElementState.Stopped:
                if (MediaElement.KeepScreenOn)
                {
                    SetKeepScreenOn(false);
                }
                //ios has no stop...
                Player.Pause();
                Player.Seek(CMTime.Zero);
                Controller.CurrentState = MediaElementState.Stopped;

                NSError err = AVAudioSession.SharedInstance().SetActive(false);
                break;
            }

            Controller.Position = Position;
        }