FastForward Method

Summary
Sets the Mode property to VCRControlMode.FastForward.
Syntax
C#
C++/CLI
public void FastForward() 
public: 
void FastForward();  
Remarks

This method sets the Mode property to VCRControlMode.FastForward. This method does not support the VCRControlDeviceType.Camera device type. If the method fails, an error is raised. For more information, refer to the Error Codes.

Example
C#
using Leadtools; 
using Leadtools.Multimedia; 
using LeadtoolsMultimediaExamples.Fixtures; 
 
 
public bool _result = false; 
public ConvertCtrlForm _form = new ConvertCtrlForm(); 
public ConvertCtrl _convertctrl; 
public bool _testing; 
public int _startTimeCode; 
public int _stopTimeCode; 
 
public void ReadTimecodeExample() 
{ 
   // reference the convert control 
   _convertctrl = _form.ConvertCtrl; 
 
   // input file 
   string inFile = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi"); 
 
   try 
   { 
      // check to see if we have the desired target device 
      if (_convertctrl.TargetDevices["Microsoft DV Camera and VCR"] == null) 
         throw new Exception("No Microsoft DV Camera target devices available!"); 
 
      // set the video capture device, use your capture device name here 
      _convertctrl.SourceFile = inFile; 
 
      // select video and audio compressors to none 
      _convertctrl.VideoCompressors.Selection = -1; 
      _convertctrl.AudioCompressors.Selection = -1; 
 
      // select the target format 
      _convertctrl.TargetFormats[TargetFormatType.DVSD].Selected = true; 
 
      // select only Audio for this example 
      _convertctrl.AllowedStreams = StreamFormatType.AudioVideo; 
 
      // set a target device 
      _convertctrl.TargetDevices["Microsoft DV Camera and VCR"].Selected = true; 
 
      // check the target device VCRControl  
      if (_convertctrl.TargetVCRControl == null 
         || (_convertctrl.TargetVCRControl.DeviceType == VCRControlDeviceType.NotPresent 
            || _convertctrl.TargetVCRControl.DeviceType == VCRControlDeviceType.Unknown)) 
         throw new Exception("MS DV Camera's Target VCR control is not present!"); 
 
      // subscribe to convert control events for VCR control input 
      _convertctrl.Started += new EventHandler(ConvertCtrl_Started); 
      _convertctrl.Complete += new EventHandler(ConvertCtrl_Complete); 
      _convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress); 
      _convertctrl.KeyPress += new Leadtools.Multimedia.KeyPressEventHandler(ConvertCtrl_KeyPress); 
 
      // start the conversion 
      _convertctrl.StartConvert(); 
   } 
   catch (Exception) 
   { 
      _result = false; 
      return; 
   } 
 
   // we'll loop on the state and pump messages for this example. 
   // but you should not need to if running from a Windows Forms application. 
   while (_convertctrl.State == ConvertState.Running) 
      Application.DoEvents(); 
 
   // switch to playback and test 
   _testing = true; 
 
   // again, we'll loop and pump messages for this example for  
   // playback testing, (setting _testing == true will exit) 
   while (_testing) 
      Application.DoEvents(); 
} 
 
void ConvertCtrl_Started(object sender, EventArgs e) 
{ 
   // start recording 
   if (_convertctrl.TargetVCRControl.Mode != VCRControlMode.Record) 
   { 
      // pause the graph to prevent frame loss 
      _convertctrl.PauseConvert(); 
      // start the record on the VCR control 
      _convertctrl.TargetVCRControl.Record(); 
      // resume graph now 
      _convertctrl.RunConvert(); 
   } 
 
   // get our VCR start timecode 
   _startTimeCode = _convertctrl.TargetVCRControl.ReadTimecode(); 
} 
 
void ConvertCtrl_Complete(object sender, EventArgs e) 
{ 
   // stop recording 
   if (_convertctrl.TargetVCRControl.Mode != VCRControlMode.Stop) 
      _convertctrl.TargetVCRControl.Stop(); 
 
   // get our VCR start timecode 
   _stopTimeCode = _convertctrl.TargetVCRControl.ReadTimecode(); 
 
   // set the result to what we expect 
   _result = (_stopTimeCode > _startTimeCode); 
} 
 
void ConvertCtrl_KeyPress(object sender, Leadtools.Multimedia.KeyPressEventArgs e) 
{ 
   // if ok to perform playback functions  
   if (_testing && _convertctrl.TargetVCRControl != null) 
   { 
      // reference the target VCR control 
      VCRControl vcr = _convertctrl.TargetVCRControl; 
      switch ((char)e.keyAscii) 
      { 
         case '*': 
            // seek to the beginning of the capture  
            if (vcr.Mode != VCRControlMode.Stop) 
               vcr.Stop(); 
            vcr.SeekTimecode(_startTimeCode); 
            break; 
         case '~': 
            // seek to the end of the capture 
            if (vcr.Mode != VCRControlMode.Stop) 
               vcr.Stop(); 
            vcr.SeekTimecode(_stopTimeCode); 
            break; 
         case 'p': 
            // start playback 
            if (vcr.Mode != VCRControlMode.Play) 
               vcr.Play(); 
            break; 
         case 's': 
            // skip ahead 1000 units from the current timecode  
            vcr.Pause(); 
            int tc = vcr.ReadTimecode(); 
            vcr.SeekTimecode(tc + 1000); 
            vcr.Play(); 
            break; 
         case '+': 
            // step forward one frame 
            if (vcr.Mode != VCRControlMode.Pause) 
               vcr.Pause(); 
            vcr.StepForward(); 
            break; 
         case '-': 
            // step backward one frame 
            if (vcr.Mode != VCRControlMode.Pause) 
               vcr.Pause(); 
            vcr.StepBackward(); 
            break; 
         case 'f': 
            // slowest forward 
            vcr.SlowestForward(); 
            break; 
         case 'r': 
            // slowest reverse 
            vcr.SlowestReverse(); 
            break; 
         case '>': 
            // fastest forward 
            vcr.FastestForward(); 
            break; 
         case '<': 
            // fastest reverse 
            vcr.FastestReverse(); 
            break; 
         case 'x': 
            // stop playback and exit 
            if (vcr.Mode != VCRControlMode.Stop) 
               vcr.Stop(); 
            _testing = false; 
            break; 
      } 
   } 
} 
 
void ConvertCtrl_Progress(object sender, ProgressEventArgs e) 
{ 
   if (_convertctrl.TargetVCRControl != null) 
   { 
      // reference the VCR control 
      VCRControl vcr = _convertctrl.TargetVCRControl; 
 
      // get the current time code 
      int timeCode = vcr.ReadTimecode(); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string MediaDir = @"C:\LEADTOOLS23\Media"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Multimedia Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.