Gets the video capture VCR control object.
public virtual VCRControl CaptureVCRControl { get; } Public Overridable ReadOnly Property CaptureVCRControl As VCRControl public:virtual property VCRControl^ CaptureVCRControl {VCRControl^ get();}
A VCRControl object.
The VCRControl object is used to control VCR functionality available in the video capture device.
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 filestring inFile = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi");try{// check to see if we have the desired target deviceif (_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 VCRControlif (_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 recordingif (_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 recordingif (_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 functionsif (_testing && _convertctrl.TargetVCRControl != null){// reference the target VCR controlVCRControl vcr = _convertctrl.TargetVCRControl;switch ((char)e.keyAscii){case '*':// seek to the beginning of the captureif (vcr.Mode != VCRControlMode.Stop)vcr.Stop();vcr.SeekTimecode(_startTimeCode);break;case '~':// seek to the end of the captureif (vcr.Mode != VCRControlMode.Stop)vcr.Stop();vcr.SeekTimecode(_stopTimeCode);break;case 'p':// start playbackif (vcr.Mode != VCRControlMode.Play)vcr.Play();break;case 's':// skip ahead 1000 units from the current timecodevcr.Pause();int tc = vcr.ReadTimecode();vcr.SeekTimecode(tc + 1000);vcr.Play();break;case '+':// step forward one frameif (vcr.Mode != VCRControlMode.Pause)vcr.Pause();vcr.StepForward();break;case '-':// step backward one frameif (vcr.Mode != VCRControlMode.Pause)vcr.Pause();vcr.StepBackward();break;case 'f':// slowest forwardvcr.SlowestForward();break;case 'r':// slowest reversevcr.SlowestReverse();break;case '>':// fastest forwardvcr.FastestForward();break;case '<':// fastest reversevcr.FastestReverse();break;case 'x':// stop playback and exitif (vcr.Mode != VCRControlMode.Stop)vcr.Stop();_testing = false;break;}}}void ConvertCtrl_Progress(object sender, ProgressEventArgs e){if (_convertctrl.TargetVCRControl != null){// reference the VCR controlVCRControl vcr = _convertctrl.TargetVCRControl;// get the current time codeint timeCode = vcr.ReadTimecode();}}static class LEAD_VARS{public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 20\Media";}
Imports LeadtoolsImports Leadtools.MultimediaImports LeadtoolsMultimediaExamples.FixturesPublic _result As Boolean = FalsePublic _form As ConvertCtrlForm = New ConvertCtrlForm()Public _convertctrl As ConvertCtrlPublic _testing As BooleanPublic _startTimeCode As IntegerPublic _stopTimeCode As IntegerPublic Sub ReadTimecodeExample()' reference the convert control_convertctrl = _form.ConvertCtrl' input fileDim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi")Try' check to see if we have the desired target deviceIf _convertctrl.TargetDevices("Microsoft DV Camera and VCR") Is Nothing ThenThrow 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 VCRControlIf _convertctrl.TargetVCRControl Is Nothing OrElse (_convertctrl.TargetVCRControl.DeviceType = VCRControlDeviceType.NotPresent _OrElse _convertctrl.TargetVCRControl.DeviceType = VCRControlDeviceType.Unknown) ThenThrow New Exception("MS DV Camera's Target VCR control is not present!")End If' subscribe to convert control events for VCR control inputAddHandler _convertctrl.Started, AddressOf ConvertCtrl_StartedAddHandler _convertctrl.Complete, AddressOf ConvertCtrl_CompleteAddHandler _convertctrl.Progress, AddressOf ConvertCtrl_ProgressAddHandler _convertctrl.KeyPress, AddressOf ConvertCtrl_KeyPress' start the conversion_convertctrl.StartConvert()Catch e1 As Exception_result = FalseEnd 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.RunningApplication.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 _testingApplication.DoEvents()LoopEnd SubPrivate Sub ConvertCtrl_Started(ByVal sender As Object, ByVal e As EventArgs)' start recordingIf _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 SubPrivate Sub ConvertCtrl_Complete(ByVal sender As Object, ByVal e As EventArgs)' stop recordingIf _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 SubPrivate Sub ConvertCtrl_KeyPress(ByVal sender As Object, ByVal e As Leadtools.Multimedia.KeyPressEventArgs)' if ok to perform playback functionsIf _testing AndAlso Not _convertctrl.TargetVCRControl Is Nothing Then' reference the target VCR controlDim vcr As VCRControl = _convertctrl.TargetVCRControlSelect Case e.keyAsciiCase CShort("*")' seek to the beginning of the captureIf vcr.Mode <> VCRControlMode.Stop Thenvcr.Stop()End Ifvcr.SeekTimecode(_startTimeCode)Case CShort("~")' seek to the end of the captureIf vcr.Mode <> VCRControlMode.Stop Thenvcr.Stop()End Ifvcr.SeekTimecode(_stopTimeCode)Case CShort("p")' start playbackIf vcr.Mode <> VCRControlMode.Play Thenvcr.Play()End IfCase CShort("s")' skip ahead 1000 units from the current timecodevcr.Pause()Dim tc As Integer = vcr.ReadTimecode()vcr.SeekTimecode(tc + 1000)vcr.Play()Case CShort("+")' step forward one frameIf vcr.Mode <> VCRControlMode.Pause Thenvcr.Pause()End Ifvcr.StepForward()Case CShort("-")' step backward one frameIf vcr.Mode <> VCRControlMode.Pause Thenvcr.Pause()End Ifvcr.StepBackward()Case CShort("f")' slowest forwardvcr.SlowestForward()Case CShort("r")' slowest reversevcr.SlowestReverse()Case CShort(">")' fastest forwardvcr.FastestForward()Case CShort("<")' fastest reversevcr.FastestReverse()Case CShort("x")' stop playback and exitIf vcr.Mode <> VCRControlMode.Stop Thenvcr.Stop()End If_testing = FalseEnd SelectEnd IfEnd SubPrivate Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)If Not _convertctrl.TargetVCRControl Is Nothing Then' reference the VCR controlDim vcr As VCRControl = _convertctrl.TargetVCRControl' get the current time codeDim timeCode As Integer = vcr.ReadTimecode()End IfEnd SubPublic NotInheritable Class LEAD_VARSPublic Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 20\Media"End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
