←Select platform

CaptureVCRControl Property

Summary

Gets the video capture VCR control object.

Syntax

C#
VB
C++
public virtual VCRControl CaptureVCRControl { get; } 
Public Overridable ReadOnly Property CaptureVCRControl As Leadtools.Multimedia.VCRControl 
public: 
virtual property Leadtools.Multimedia.VCRControl^ CaptureVCRControl { 
   Leadtools.Multimedia.VCRControl^ get(); 
} 

Property Value

A VCRControl object.

Remarks

The VCRControl object is used to control VCR functionality available in the video capture device.

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 19\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 19\Media" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Multimedia Assembly