void qtPlayer_QTEvent(object sender, AxQTOControlLib._IQTControlEvents_QTEventEvent e) { // Code to handle various QuickTime Events // When running your code in debug mode you will // see the following messages displayed in the // Immediate Window switch ((QTEventIDsEnum)e.eventID) { // status strings case QTEventIDsEnum.qtEventShowStatusStringRequest: { string msg = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamStatusString).ToString(); Logger.Info("qtEventShowStatusStringRequest: " + msg); } break; // rate changes case QTEventIDsEnum.qtEventRateWillChange: { var rate = (e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamMovieRate)); int therate = Convert.ToInt16(rate); if (therate > 0) { PlayState = GenericPlayerControl.PlayStates.Playing; } else { PlayState = GenericPlayerControl.PlayStates.Paused; } if (PlayStateChanged != null) PlayStateChanged(sender, new PlayStateChangedEventArgs() { PlayState = PlayState }); Logger.Debug("RateWillChange to: " + rate); } break; // time changes case QTEventIDsEnum.qtEventTimeWillChange: { var time = (int)e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamMovieTime); Logger.Debug("TimeWillChange to: " + (double)(time) / qtPlayer.Movie.TimeScale ); } break; // audio volume changes case QTEventIDsEnum.qtEventAudioVolumeDidChange: { string vol = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamAudioVolume).ToString(); Logger.Debug("AudioVolumeDidChange to: " + vol); } break; case QTEventIDsEnum.qtEventMovieDidEnd: { Logger.Debug("MovieDidEnd"); if (PlayStateChanged != null) PlayStateChanged(sender, new PlayStateChangedEventArgs() { PlayState = GenericPlayerControl.PlayStates.Stopped }); } break; default: { Logger.Debug("Other QT_Event: " + e.eventID); break; } } }
private void wmPlayer_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) { Logger.Debug("PlayStateChanged to " + GetFriendlyPlayState((WMPLib.WMPPlayState)e.newState)); switch ((WMPLib.WMPPlayState)e.newState) { case WMPLib.WMPPlayState.wmppsPlaying: PlayState = GenericPlayerControl.PlayStates.Playing; break; case WMPLib.WMPPlayState.wmppsPaused: PlayState = GenericPlayerControl.PlayStates.Paused; break; case WMPLib.WMPPlayState.wmppsStopped: PlayState = GenericPlayerControl.PlayStates.Stopped; break; case WMPLib.WMPPlayState.wmppsReady: PlayState = GenericPlayerControl.PlayStates.Ready; break; case WMPLib.WMPPlayState.wmppsTransitioning: PlayState = GenericPlayerControl.PlayStates.Transitioning; break; case WMPLib.WMPPlayState.wmppsMediaEnded: PlayState = GenericPlayerControl.PlayStates.Ended; break; } if (PlayStateChanged != null) PlayStateChanged(sender, new PlayStateChangedEventArgs() { PlayState = PlayState } ); }