// Status update event handler // Handle movie fullscreen events void axQTControl1_StatusUpdateEventHandler(object sender, AxQTOControlLib._IQTControlEvents_StatusUpdateEvent e) { switch(e.statusCodeType) { case (int)QTStatusCodeTypesEnum.qtStatusCodeTypeControl: { switch (e.statusCode) { // fullscreen begin case (int)QTStatusCodesEnum.qtStatusFullScreenBegin: this.Hide(); // hide movie window break; // fullscreen end case (int)QTStatusCodesEnum.qtStatusFullScreenEnd: axQTControl1.SetScale(1); // set back to a reasonable size this.Show(); // show movie window again break; } } break; } }
private void axQTControl1_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 (e.eventID) { // status strings case (int)QTEventIDsEnum.qtEventShowStatusStringRequest: { string msg = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamStatusString).ToString(); Console.WriteLine("qtEventShowStatusStringRequest : " + msg + "\n"); } break; // rate changes case (int)QTEventIDsEnum.qtEventRateWillChange: { string rate = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamMovieRate).ToString(); Console.WriteLine("RateWillChange to: " + rate + "\n"); } break; // time changes case (int)QTEventIDsEnum.qtEventTimeWillChange: { string time = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamMovieTime).ToString(); Console.WriteLine("TimeWillChange to:" + time + "\n"); } break; // audio volume changes case (int)QTEventIDsEnum.qtEventAudioVolumeDidChange: { string vol = e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamAudioVolume).ToString(); Console.WriteLine("AudioVolumeDidChange to: " + vol + "\n"); } break; } }
private void axQTControl1_SizeChangedEventHandler(object sender, AxQTOControlLib._IQTControlEvents_SizeChangedEvent e) { if (m_bManualFormResize) return; // resize window to accomodate control this.ClientSize = axQTControl1.Size; }
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 qtPlayer_StatusUpdate(object sender, AxQTOControlLib._IQTControlEvents_StatusUpdateEvent e) { Logger.Info("StatusUpdate: " + e.statusMessage); // Status update event handler // Handle movie fullscreen events /* qtMovieLoadStateError = -1, qtStatusNone = 0, qtStatusConnecting = 2, qtStatusNegotiating = 5, qtStatusRequestedData = 11, qtStatusBuffering = 12, qtMovieLoadStateLoading = 1000, qtMovieLoadStateLoaded = 2000, qtStatusURLChanged = 4096, qtStatusFullScreenBegin = 4097, qtStatusFullScreenEnd = 4098, qtStatusMovieLoadFinalize = 4099, qtMovieLoadStatePlayable = 10000, qtMovieLoadStatePlaythroughOK = 20000, qtMovieLoadStateComplete = 100000, */ switch ((QTStatusCodesEnum)e.statusCode) { // fullscreen begin case QTStatusCodesEnum.qtStatusFullScreenBegin: this.Hide(); // hide movie window break; // fullscreen end case QTStatusCodesEnum.qtStatusFullScreenEnd: qtPlayer.SetScale(1); // set back to a reasonable size this.Show(); // show movie window again break; case QTStatusCodesEnum.qtMovieLoadStateError: var playerErrorEventArgs = new PlayerErrorEventArgs(); playerErrorEventArgs.ErrorMessage = "We couldn't load the movie!"; playerErrorEventArgs.SupportID = "ErrorLoadingVideo"; if (PlayerError != null) PlayerError(sender, playerErrorEventArgs); break; case QTStatusCodesEnum.qtMovieLoadStateComplete: var openStateEventArgs = new OpenStateChangedEventArgs(); openStateEventArgs.OpenState = GenericPlayerControl.OpenStates.Open; if (OpenStateChanged != null) OpenStateChanged(sender, openStateEventArgs); break; } }
/// <summary> /// Is called when the quicktime player has a status update such as moving to fullscreen or moving from fullscreen /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void quicktimePlayer_StatusUpdate(object sender, AxQTOControlLib._IQTControlEvents_StatusUpdateEvent e) { switch (e.statusCodeType) { case (int)QTStatusCodeTypesEnum.qtStatusCodeTypeControl: { switch (e.statusCode) { // fullscreen begin case (int)QTStatusCodesEnum.qtStatusFullScreenBegin: this.Hide(); // hide movie window break; // fullscreen end case (int)QTStatusCodesEnum.qtStatusFullScreenEnd: //restore the anchoring back (either quicktime or c# had a problem with anchors) this.quicktimePlayer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); quicktimePlayer.SetScale(1); // set back to a reasonable size this.Show(); // show movie window again break; } } break; } }
private void qtPlayer_Error(object sender, AxQTOControlLib._IQTControlEvents_ErrorEvent e) { Logger.Error("Error code: " + e.errorCode + " from " + e.origin); }
/// <summary> /// Handles the QTEvent events that are added to a movie by addMovieEventListeners /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void quicktimePlayer_QTEvent(object sender, AxQTOControlLib._IQTControlEvents_QTEventEvent e) { switch (e.eventID) { // rate change (pause.play) case (int)QTEventIDsEnum.qtEventRateWillChange: var rate = (e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamMovieRate)); int therate = Convert.ToInt16(rate); if (therate > 0) //playing { theServer.sendStatusMessage("playing"); if (Properties.Settings.Default.startVideosFullscreen && !videoHasAlreadyBeenStarted) //if the user has chosen to start videos fullscreen, set the fullscreen to true. VideoHasAlreadyBeenStarted also needs to be false, as if it is false it means this is the first time the playing event has been called for this particular video. If it is true, it means the video has already started before, and this playing event was fired probably after the video had been paused, so don't do the fullscreen again as the user has made their choice of how they would like to play the video. { setVideoFullscreen(true); } videoHasAlreadyBeenStarted = true; //set this to true to say that the playing event has been fired at least once, so any subsequent firings of the event aren't the first time the player has started playing this video (so any playing events from now on are probably resuming playback, not starting it) } else //paused { theServer.sendStatusMessage("paused"); } break; // end of video case (int)QTEventIDsEnum.qtEventMovieDidEnd: setVideoFullscreen(false); //might as well end the fullscreen at the end of the video theServer.sendStatusMessage("stopped"); break; } }
/// <summary> /// OnQTEvent /// /// QuickTime event listener to display export progress information /// </summary> static void OnQTEvent(object sender, AxQTOControlLib._IQTControlEvents_QTEventEvent e) { switch (e.eventID) { case (int) QTEventIDsEnum.qtEventExportProgress: // display export progress int pcnt = (int)(float) e.eventObject.GetParam(QTEventObjectParametersEnum.qtEventParamAmount); if (pcnt >= (exportProgress + 10)) { Console.Write(pcnt.ToString() + "% "); exportProgress = pcnt; } break; } }
private void axQTControl1_MouseUpEvent(object sender, AxQTOControlLib._IQTControlEvents_MouseUpEvent e) { if (e.button != 2) return; this.contextMenuStrip1.Show(this, e.x, e.y); }
private void axQTControl1_MouseMoveEvent(object sender, AxQTOControlLib._IQTControlEvents_MouseMoveEvent e) { if (e.button == 1) mouseMove(e.x, e.y, false); }
private void axQTControl1_MouseDownEvent(object sender, AxQTOControlLib._IQTControlEvents_MouseDownEvent e) { // left button if( e.button == 1 ) mouseDown(e.x, e.y, 1); }