C#
VB
C++
Sets the Mode property to VCRControlMode.SlowestForward.
public void SlowestForward()
Public Sub SlowestForward()
public:
void SlowestForward();
This method sets the Mode property to VCRControlMode.SlowestForward. 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.
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
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET