Error processing SSI file
LEADTOOLS Multimedia (Leadtools.Multimedia assembly)

Show in webframe

FastestReverse Method






Sets the Mode property to VCRControlMode.FastestReverse.
Syntax
public void FastestReverse()
'Declaration
 
Public Sub FastestReverse() 
'Usage
 
Dim instance As VCRControl
 
instance.FastestReverse()
public:
void FastestReverse(); 
Remarks
This method sets the Mode property to VCRControlMode.FastestReverse. 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
Copy Code  
Imports Leadtools
Imports Leadtools.Multimedia
Imports LeadtoolsMultimediaExamples.Fixtures

''' <review>Khaledb 11_20_2013, Remove the "Uncompressed" read only properties that were giving false results (Audio and video) and use 
''' (Compressors.Selection = -1) Instead</review>
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 19\Media"
End Class
using Leadtools;
using Leadtools.Multimedia;
using LeadtoolsMultimediaExamples.Fixtures;

/// <review>Khaledb 11_20_2013, Remove the "Uncompressed" read only properties that were giving false results (Audio and video) and use 
/// (Compressors.Selection = -1) Instead</review>
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 19\Media";
}
Requirements

Target Platforms

See Also

Reference

VCRControl Class
VCRControl Members

Error processing SSI file
Leadtools.Multimedia requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features