示例#1
0
 private void OnPlayerEvent(PlayerEventArgs args)
 {
     if (args.Event == PlayerEvent.StartOfStream)
     {
         LoadCurrentTrack();
     }
     else if (args.Event == PlayerEvent.TrackInfoUpdated)
     {
         LoadCurrentTrack(true);
     }
     else if (args.Event == PlayerEvent.StateChange && (incoming_track != null || incoming_image != null))
     {
         PlayerEventStateChangeArgs state = (PlayerEventStateChangeArgs)args;
         if (state.Current == PlayerState.Idle)
         {
             if (idle_timeout_id > 0)
             {
                 GLib.Source.Remove(idle_timeout_id);
             }
             else
             {
                 GLib.Timeout.Add(100, IdleTimeout);
             }
         }
     }
 }
        private void OnPlayerEvent(PlayerEventArgs args)
        {
            if (ContactContainerSource.ShareCurrentlyPlayingSchema.Get())
            {
                switch (args.Event)
                {
                case PlayerEvent.StartOfStream:
                    AnnounceTrack(ServiceManager.PlayerEngine.CurrentTrack);
                    break;

                case PlayerEvent.StateChange:
                    PlayerEventStateChangeArgs state = args as PlayerEventStateChangeArgs;
                    if (state != null)
                    {
                        switch (state.Current)
                        {
                        case PlayerState.Paused:
                            announcer.Announce(String.Empty);
                            break;

                        case PlayerState.Playing:
                            AnnounceTrack(ServiceManager.PlayerEngine.CurrentTrack);
                            break;
                        }
                    }
                    break;
                }
            }
        }
示例#3
0
        private void OnPlayerStateChange(PlayerEventStateChangeArgs args)
        {
            if (play_pause_action == null)
            {
                play_pause_action = Actions["Playback.PlayPauseAction"];
            }

            switch (args.Current)
            {
            case PlayerState.Loaded:
                ShowStopAction();
                subtitle_actions.Sensitive = ServiceManager.PlayerEngine.CurrentTrack.HasAttribute(TrackMediaAttributes.VideoStream);
                subtitle_actions.ReloadEmbeddedSubtitle();
                break;

            case PlayerState.Contacting:
            case PlayerState.Loading:
            case PlayerState.Playing:
                ShowStopAction();
                break;

            case PlayerState.Paused:
                ShowPlay();
                break;

            case PlayerState.Idle:
                subtitle_actions.Sensitive = false;
                ShowPlay();
                break;

            default:
                break;
            }

            TrackInfo track = ServiceManager.PlayerEngine.CurrentTrack;

            if (track != null)
            {
                this["SeekToAction"].Sensitive      = !track.IsLive;
                this["RestartSongAction"].Sensitive = !track.IsLive;

                this["RestartSongAction"].Label            = track.RestartLabel;
                this["JumpToPlayingTrackAction"].Label     = track.JumpToLabel;
                this["JumpToPlayingTrackAction"].Sensitive = true;
            }
            else
            {
                this["JumpToPlayingTrackAction"].Sensitive = false;
                this["RestartSongAction"].Sensitive        = false;
                this["SeekToAction"].Sensitive             = false;
            }

            // Disable all actions while NotReady
            Sensitive = args.Current != PlayerState.NotReady;
        }
        private void StateChange(PlayerEventStateChangeArgs args, TrackInfo track, uint pos, uint len)
        {
            replaces["%S"] = args.Current.ToString();
            switch (args.Current)
            {
            case PlayerState.Playing:
            case PlayerState.Paused:
                UpdateTrack(track, pos, len);
                break;

            case PlayerState.NotReady:
                Reset();
                break;
            }
        }