Leadtools.Multimedia Namespace > VCRControl Class : SlowestForward Method |
public void SlowestForward()
public: void SlowestForward();
'Declaration Public Sub SlowestForward()
'Usage Dim instance As VCRControl instance.SlowestForward()
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.Uncompressed.Selected = True _convertctrl.AudioCompressors.Uncompressed.Selected = True ' 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 18\Media" End Class
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.Uncompressed.Selected = true; _convertctrl.AudioCompressors.Uncompressed.Selected = true; // 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 18\Media"; }
Products | Support | Contact Us | Copyright Notices