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

Show in webframe

CaptureVCRControl Property






Gets the video capture VCR control object.
Syntax
public virtual VCRControl CaptureVCRControl {get;}
'Declaration
 
Public Overridable ReadOnly Property CaptureVCRControl As VCRControl
'Usage
 
Dim instance As CaptureCtrl
Dim value As VCRControl
 
value = instance.CaptureVCRControl
public:
virtual property VCRControl^ CaptureVCRControl {
   VCRControl^ get();
}

Property Value

A VCRControl object.
Remarks
The VCRControl object is used to control VCR functionality available in the video capture device.
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

CaptureCtrl Class
CaptureCtrl 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