当前位置: 首页>>代码示例>>C#>>正文


C# MediaEngine.PlayerEventArgs类代码示例

本文整理汇总了C#中Banshee.MediaEngine.PlayerEventArgs的典型用法代码示例。如果您正苦于以下问题:C# PlayerEventArgs类的具体用法?C# PlayerEventArgs怎么用?C# PlayerEventArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PlayerEventArgs类属于Banshee.MediaEngine命名空间,在下文中一共展示了PlayerEventArgs类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProcessEvent

 public void ProcessEvent(PlayerEventArgs args, TrackInfo track, uint pos, uint len)
 {
     switch(args.Event) {
     case PlayerEvent.StateChange:
         StateChange((PlayerEventStateChangeArgs)args, track, pos, len);
         break;
     case PlayerEvent.TrackInfoUpdated:
         UpdateTrack(track, pos, len);
         break;
     case PlayerEvent.Iterate:
         UpdatePosition(pos, len);
         break;
     }
 }
开发者ID:nailyk,项目名称:banshee-community-extensions,代码行数:14,代码来源:LCDParser.cs

示例2: OnPlayerEvent

 private void OnPlayerEvent (PlayerEventArgs args)
 {
     switch (args.Event) {
         case PlayerEvent.StartOfStream:
         case PlayerEvent.TrackInfoUpdated:
             player.AddPropertyChange (PlayerProperties.Metadata);
             break;
         case PlayerEvent.StateChange:
             player.AddPropertyChange (PlayerProperties.PlaybackStatus);
             break;
         case PlayerEvent.Seek:
             player.HandleSeek ();
             break;
         case PlayerEvent.Volume:
             player.AddPropertyChange (PlayerProperties.Volume);
             break;
     }
 }
开发者ID:petejohanson,项目名称:banshee,代码行数:18,代码来源:MprisService.cs

示例3: OnPlayerEvent

        /// <summary>
        /// Callback for when player events occur
        /// </summary>
        /// <param name='args'>Event arguments</param>
        public void OnPlayerEvent(PlayerEventArgs args)
        {
            // Check what type of event it was - We need to know if playback
            // was stopped or started.
            switch (args.Event)
            {
                case PlayerEvent.StartOfStream:
                case PlayerEvent.TrackInfoUpdated:
                    UpdateStatus();
                    break;

                case PlayerEvent.EndOfStream:
                    OnStop();
                    break;

                case PlayerEvent.StateChange:
                    OnPlayerStateChange((PlayerEventStateChangeArgs)args);
                    break;
            }
        }
开发者ID:Daniel15,项目名称:Banshee-StatusUpdater,代码行数:24,代码来源:StatusUpdaterService.cs

示例4: OnPlayerEvent

        private void OnPlayerEvent (PlayerEventArgs args)
        {
            if (args.Event == PlayerEvent.EndOfStream) {
                // If EoS is for the last track in the play queue
                if (this == ServiceManager.PlaybackController.Source &&
                    TrackModel.IndexOf (current_track) == Count - 1) {
                    SetCurrentTrack (null);
                    UpdatePlayQueue ();
                    if (was_playing) {
                        ServiceManager.PlaybackController.PriorTrack = prior_playback_track;
                    } else {
                        // Stop playback; nothing was playing before the play queue, so it doesn't
                        // make sense to continue playback.
                        ServiceManager.PlaybackController.StopWhenFinished = true;
                    }
                }

                if (ServiceManager.PlaybackController.StopWhenFinished) {
                    if (current_track != null && this == ServiceManager.PlaybackController.Source) {
                        int index = TrackModel.IndexOf (current_track) + 1;
                        SetCurrentTrack (index < Count ? TrackModel[index] as DatabaseTrackInfo : null);
                    }
                }
            } else if (args.Event == PlayerEvent.StartOfStream) {
                if (TrackModel.IndexOf (ServiceManager.PlayerEngine.CurrentTrack) != -1) {
                    SetCurrentTrack (ServiceManager.PlayerEngine.CurrentTrack as DatabaseTrackInfo);
                    SetAsPlaybackSourceUnlessPlaying ();
                    UpdatePlayQueue ();
                } else {
                    prior_playback_track = ServiceManager.PlayerEngine.CurrentTrack;
                }
            }
        }
开发者ID:petejohanson,项目名称:banshee,代码行数:33,代码来源:PlayQueueSource.cs

示例5: OnEngineEventChanged

        private void OnEngineEventChanged(PlayerEventArgs args)
        {
            if (CurrentTrack != null) {
                if (args.Event == PlayerEvent.Error
                    && CurrentTrack.PlaybackError == StreamPlaybackError.None) {
                    CurrentTrack.SavePlaybackError (StreamPlaybackError.Unknown);
                } else if (args.Event == PlayerEvent.Iterate
                    && CurrentTrack.PlaybackError != StreamPlaybackError.None) {
                    CurrentTrack.SavePlaybackError (StreamPlaybackError.None);
                }
            }

            if (args.Event == PlayerEvent.StartOfStream) {
                incremented_last_played = false;
            } else if (args.Event == PlayerEvent.EndOfStream) {
                IncrementLastPlayed ();
            }

            RaiseEvent (args);

            // Do not raise iterate across DBus to avoid so many calls;
            // DBus clients should do their own iterating and
            // event/state checking locally
            if (args.Event == PlayerEvent.Iterate) {
                return;
            }

            DBusPlayerEventHandler dbus_handler = dbus_event_changed;
            if (dbus_handler != null) {
                dbus_handler (args.Event.ToString ().ToLower (),
                    args is PlayerEventErrorArgs ? ((PlayerEventErrorArgs)args).Message : String.Empty,
                    args is PlayerEventBufferingArgs ? ((PlayerEventBufferingArgs)args).Progress : 0
                );
            }
        }
开发者ID:dufoli,项目名称:banshee,代码行数:35,代码来源:PlayerEngineService.cs

示例6: OnPlayerEvent

        private void OnPlayerEvent(PlayerEventArgs args)
        {
            switch (args.Event) {
                case PlayerEvent.StartOfStream:
                case PlayerEvent.TrackInfoUpdated:
                    current_track = ServiceManager.PlayerEngine.CurrentTrack;
                    ToggleRatingMenuSensitive ();
                    ShowTrackNotification ();
                    break;
                case PlayerEvent.StateChange:
                    UpdateActions ();
                    break;
                case PlayerEvent.EndOfStream:
                    current_track = null;
                    ToggleRatingMenuSensitive ();
                    break;
            }

            if (notif_area != null) {
                notif_area.OnPlayerEvent (args);
            }
        }
开发者ID:knocte,项目名称:banshee,代码行数:22,代码来源:NotificationAreaService.cs

示例7: OnEndOfStream

 /// <summary>
 /// Handles EndOfStream events and stops recording
 /// </summary>
 /// <param name="args">
 /// A <see cref="PlayerEventArgs"/>
 /// </param>
 private void OnEndOfStream(PlayerEventArgs args)
 {
     if (recording) {
         StopRecording ();
     }
 }
开发者ID:dgupta,项目名称:banshee-community-extension-fakefork-,代码行数:12,代码来源:StreamrecorderService.cs

示例8: OnStateChange

 /// <summary>
 /// Handles Player state changes and Stops recording if appropriate
 /// </summary>
 /// <param name="args">
 /// A <see cref="PlayerEventArgs"/>
 /// </param>
 private void OnStateChange(PlayerEventArgs args)
 {
     if (ServiceManager.PlayerEngine.CurrentState == PlayerState.Idle && recording) {
         StopRecording ();
     }
 }
开发者ID:dgupta,项目名称:banshee-community-extension-fakefork-,代码行数:12,代码来源:StreamrecorderService.cs

示例9: OnPlayerEvent

        private void OnPlayerEvent(PlayerEventArgs args)
        {
            parser.ProcessEvent(args,
                ServiceManager.PlayerEngine.CurrentTrack,
                ServiceManager.PlayerEngine.Position,
                ServiceManager.PlayerEngine.Length);

            if (args.Event == PlayerEvent.StateChange)
            {
                switch(((PlayerEventStateChangeArgs)args).Current)
                {
                case PlayerState.NotReady:
                case PlayerState.Ready:
                case PlayerState.Idle:
                case PlayerState.Contacting:
                case PlayerState.Loading:
                case PlayerState.Loaded:
                    idlescreen.prio = LCDScreen.Prio.Foreground;
                    lcdclient.UpdScreen(idlescreen);
                    foreach(LCDScreen screen in userscreens.Keys)
                    {
                        screen.prio = LCDScreen.Prio.Hidden;
                        lcdclient.UpdScreen(screen);
                    }
                    break;
                case PlayerState.Playing:
                case PlayerState.Paused:
                    idlescreen.prio = LCDScreen.Prio.Hidden;
                    lcdclient.UpdScreen(idlescreen);
                    foreach(LCDScreen screen in userscreens.Keys)
                    {
                        screen.prio = LCDScreen.Prio.Foreground;
                        lcdclient.UpdScreen(screen);
                    }
                    break;
                }
            }
            lcdclient.UpdWidgetsAll(parser);
        }
开发者ID:nailyk,项目名称:banshee-community-extensions,代码行数:39,代码来源:LCDService.cs

示例10: RaiseEventChanged

 private void RaiseEventChanged (PlayerEventArgs args)
 {
     PlayerEventHandler handler = EventChanged;
     if (handler != null) {
         handler (args);
     }
 }
开发者ID:allquixotic,项目名称:banshee-gst-sharp-work,代码行数:7,代码来源:PlayerEngine.cs

示例11: OnPlayerEvent

        private void OnPlayerEvent (PlayerEventArgs args)
        {
            switch (args.Event) {
                case PlayerEvent.StartOfStream:
                    CurrentTrack = player_engine.CurrentTrack;
                    consecutive_errors = 0;
                    break;
                case PlayerEvent.EndOfStream:
                    EosTransition ();
                    break;
                case PlayerEvent.Error:
                    if (++consecutive_errors >= 5) {
                        consecutive_errors = 0;
                        player_engine.Close (false);
                        OnStopped ();
                        break;
                    }

                    CancelErrorTransition ();
                    // TODO why is this so long? any reason not to be instantaneous?
                    error_transition_id = Application.RunTimeout (250, delegate {
                        EosTransition ();
                        RequestTrackHandler ();
                        return true;
                    });
                    break;
                case PlayerEvent.StateChange:
                    if (((PlayerEventStateChangeArgs)args).Current != PlayerState.Loading) {
                        break;
                    }

                    TrackInfo track = player_engine.CurrentTrack;
                    if (changing_to_track != track && track != null) {
                        CurrentTrack = track;
                    }

                    changing_to_track = null;

                    if (!raise_started_after_transition) {
                        transition_track_started = false;
                        OnTrackStarted ();
                    } else {
                        transition_track_started = true;
                    }
                    break;
                case PlayerEvent.RequestNextTrack:
                    RequestTrackHandler ();
                    break;
            }
        }
开发者ID:gclark916,项目名称:banshee,代码行数:50,代码来源:PlaybackControllerService.cs

示例12: OnEventChanged

        protected virtual void OnEventChanged(PlayerEventArgs args)
        {
            if (args.Event == PlayerEvent.StartOfStream && pending_track != null) {
                Log.DebugFormat ("OnEventChanged called with StartOfStream.  Replacing current_track with pending_track: \"{0}\"",
                                 pending_track.DisplayTrackTitle);
                CurrentTrackTimeStamp = DateTime.Now;
                current_track = pending_track;
                pending_track = null;
            }

            ThreadAssist.ProxyToMain (() => RaiseEventChanged (args));
        }
开发者ID:ptrimble,项目名称:banshee,代码行数:12,代码来源:PlayerEngine.cs

示例13: OnEventChanged

        protected virtual void OnEventChanged (PlayerEventArgs args)
        {
            if (args.Event == PlayerEvent.StartOfStream && pending_track != null) {
                Log.DebugFormat ("OnEventChanged called with StartOfStream.  Replacing current_track with pending_track: \"{0}\"",
                                 pending_track.DisplayTrackTitle);
                current_track = pending_track;
                current_uri = pending_uri;
                pending_track = null;
                pending_uri = null;
            }

            if (ThreadAssist.InMainThread) {
                RaiseEventChanged (args);
            } else {
                ThreadAssist.ProxyToMain (delegate {
                    RaiseEventChanged (args);
                });
            }
        }
开发者ID:allquixotic,项目名称:banshee-gst-sharp-work,代码行数:19,代码来源:PlayerEngine.cs

示例14: playerEvent_Handler

        void playerEvent_Handler(PlayerEventArgs e)
        {
            if(e.Event == PlayerEvent.StartOfStream && current_track != ServiceManager.PlaybackController.CurrentTrack)
            {
                try {
                    if (current_track != null) {
                        StopTrack (current_track);
                    }

                    Log.Debug("TrackStarted: "+ServiceManager.PlaybackController.CurrentTrack.TrackTitle);
                    Event ev = CreateZgEvent (ServiceManager.PlaybackController.CurrentTrack, Interpretation.Instance.EventInterpretation.AccessEvent);
                    client.InsertEvents (new List<Event> () {ev});

                    current_track = ServiceManager.PlaybackController.CurrentTrack;
                } catch (Exception ex) {
                    Log.Exception (ex);
                }
            }
        }
开发者ID:dgupta,项目名称:banshee-community-extension-fakefork-,代码行数:19,代码来源:ZeitgeistDataprovider.cs

示例15: OnPlayerEvent

 private void OnPlayerEvent(PlayerEventArgs args)
 {
     ToggleVideoVisibility ();
 }
开发者ID:abock,项目名称:cubano,代码行数:4,代码来源:NowPlayingStage.cs


注:本文中的Banshee.MediaEngine.PlayerEventArgs类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。