SlowestForward Method

Summary

Sets the Mode property to VCRControlMode.SlowestForward.

Syntax
C#
VB
C++
public void SlowestForward() 
Public Sub SlowestForward()  
public: 
void SlowestForward();  

Remarks

This method sets the Mode property to VCRControlMode.SlowestForward. 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#
VB
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; 
   } 
 
   // 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:\Program Files (x86)\LEAD Technologies\LEADTOOLS 20\Media"; 
} 
Imports Leadtools 
Imports Leadtools.Multimedia 
Imports LeadtoolsMultimediaExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As ConvertCtrlForm = New ConvertCtrlForm() 
Public _convertctrl As ConvertCtrl 
Public _testing As Boolean 
Public _startTimeCode As Integer 
Public _stopTimeCode As Integer 
 
Public Sub ReadTimecodeExample() 
   ' reference the convert control 
   _convertctrl = _form.ConvertCtrl 
 
   ' input file 
   Dim inFile As String = 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") Is Nothing Then 
         Throw New Exception("No Microsoft DV Camera target devices available!") 
      End If 
 
      ' 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 Is Nothing OrElse (_convertctrl.TargetVCRControl.DeviceType = VCRControlDeviceType.NotPresent _ 
                                                          OrElse _convertctrl.TargetVCRControl.DeviceType = VCRControlDeviceType.Unknown) Then 
         Throw New Exception("MS DV Camera's Target VCR control is not present!") 
      End If 
 
      ' subscribe to convert control events for VCR control input 
      AddHandler _convertctrl.Started, AddressOf ConvertCtrl_Started 
      AddHandler _convertctrl.Complete, AddressOf ConvertCtrl_Complete 
      AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress 
      AddHandler _convertctrl.KeyPress, AddressOf ConvertCtrl_KeyPress 
 
      ' start the conversion 
      _convertctrl.StartConvert() 
   Catch e1 As Exception 
      _result = False 
   End Try 
 
   ' 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. 
   Do While _convertctrl.State = ConvertState.Running 
      Application.DoEvents() 
   Loop 
 
   ' 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) 
   Do While _testing 
      Application.DoEvents() 
   Loop 
End Sub 
 
Private Sub ConvertCtrl_Started(ByVal sender As Object, ByVal e As EventArgs) 
   ' start recording 
   If _convertctrl.TargetVCRControl.Mode <> VCRControlMode.Record Then 
      ' pause the graph to prevent frame loss 
      _convertctrl.PauseConvert() 
      ' start the record on the VCR control 
      _convertctrl.TargetVCRControl.Record() 
      ' resume graph now 
      _convertctrl.RunConvert() 
   End If 
 
   ' get our VCR start timecode 
   _startTimeCode = _convertctrl.TargetVCRControl.ReadTimecode() 
End Sub 
 
Private Sub ConvertCtrl_Complete(ByVal sender As Object, ByVal e As EventArgs) 
   ' stop recording 
   If _convertctrl.TargetVCRControl.Mode <> VCRControlMode.Stop Then 
      _convertctrl.TargetVCRControl.Stop() 
   End If 
 
   ' get our VCR start timecode 
   _stopTimeCode = _convertctrl.TargetVCRControl.ReadTimecode() 
 
   ' set the result to what we expect 
   _result = (_stopTimeCode > _startTimeCode) 
End Sub 
 
Private Sub ConvertCtrl_KeyPress(ByVal sender As Object, ByVal e As Leadtools.Multimedia.KeyPressEventArgs) 
   ' if ok to perform playback functions  
   If _testing AndAlso Not _convertctrl.TargetVCRControl Is Nothing Then 
      ' reference the target VCR control 
      Dim vcr As VCRControl = _convertctrl.TargetVCRControl 
      Select Case e.keyAscii 
         Case CShort("*") 
            ' seek to the beginning of the capture  
            If vcr.Mode <> VCRControlMode.Stop Then 
               vcr.Stop() 
            End If 
            vcr.SeekTimecode(_startTimeCode) 
         Case CShort("~") 
            ' seek to the end of the capture 
            If vcr.Mode <> VCRControlMode.Stop Then 
               vcr.Stop() 
            End If 
            vcr.SeekTimecode(_stopTimeCode) 
         Case CShort("p") 
            ' start playback 
            If vcr.Mode <> VCRControlMode.Play Then 
               vcr.Play() 
            End If 
         Case CShort("s") 
            ' skip ahead 1000 units from the current timecode  
            vcr.Pause() 
            Dim tc As Integer = vcr.ReadTimecode() 
            vcr.SeekTimecode(tc + 1000) 
            vcr.Play() 
         Case CShort("+") 
            ' step forward one frame 
            If vcr.Mode <> VCRControlMode.Pause Then 
               vcr.Pause() 
            End If 
            vcr.StepForward() 
         Case CShort("-") 
            ' step backward one frame 
            If vcr.Mode <> VCRControlMode.Pause Then 
               vcr.Pause() 
            End If 
            vcr.StepBackward() 
         Case CShort("f") 
            ' slowest forward 
            vcr.SlowestForward() 
         Case CShort("r") 
            ' slowest reverse 
            vcr.SlowestReverse() 
         Case CShort(">") 
            ' fastest forward 
            vcr.FastestForward() 
         Case CShort("<") 
            ' fastest reverse 
            vcr.FastestReverse() 
         Case CShort("x") 
            ' stop playback and exit 
            If vcr.Mode <> VCRControlMode.Stop Then 
               vcr.Stop() 
            End If 
            _testing = False 
      End Select 
   End If 
End Sub 
 
Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs) 
   If Not _convertctrl.TargetVCRControl Is Nothing Then 
      ' reference the VCR control 
      Dim vcr As VCRControl = _convertctrl.TargetVCRControl 
 
      ' get the current time code 
      Dim timeCode As Integer = vcr.ReadTimecode() 
   End If 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 20\Media" 
End Class 

Requirements

Target Platforms

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

Leadtools.Multimedia Assembly