Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures
Public _result As Boolean = False
Public _form As New CaptureCtrlForm()
Public _capturectrl As CaptureCtrl
Public _totalTime As Double
Public Sub ErrorAbortExample()
    ' reference the capture control
    _capturectrl = _form.CaptureCtrl
    ' output file
    Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_ErrorAbortTest.avi")
    Try
        ' set a test timer to interrupt the capture
        _form.TestTimer.Interval = 5000
        AddHandler _form.TestTimer.Tick, AddressOf TestTimer_Tick
        _form.TestTimer.Start()
        ' initialize the total capture time
        _totalTime = 0
        ' subscribe to the ErrorAbort event
        AddHandler _capturectrl.ErrorAbort, AddressOf CaptureCtrl_ErrorAbort
        ' subscribe to the event
        AddHandler _capturectrl.Progress, AddressOf CaptureCtrl_Progress
        ' set a video device, use the name of your device here
        If _capturectrl.VideoDevices("USB") Is Nothing Then
            Throw New Exception("No USB video device available")
        End If
        _capturectrl.VideoDevices("USB").Selected = True
        ' set an audio device, use the name of your device here
        _capturectrl.AudioDevices("USB").Selected = True
        ' set the target output file
        _capturectrl.TargetFile = outFile
        ' only 10 seconds of capture time
        _capturectrl.TimeLimit = 10
        _capturectrl.UseTimeLimit = True
        ' capture it now!
        _capturectrl.StartCapture(CaptureMode.AutoFramesAndAudio)
    Catch generatedExceptionName 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.
    While _capturectrl.State = CaptureState.Running
        Application.DoEvents()
    End While
End Sub
Public Sub TestTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    ' stop the capture
    _capturectrl.StopCapture()
End Sub
Public Sub CaptureCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
    _totalTime = _capturectrl.CaptureTime
End Sub
Public Sub CaptureCtrl_ErrorAbort(ByVal sender As Object, ByVal e As ErrorAbortEventArgs)
    ' set result
    _result = True
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.MediaFoundation;
using LeadtoolsMediaFoundationExamples.Fixtures;
public bool _result = false;
public CaptureCtrlForm _form = new CaptureCtrlForm();
public CaptureCtrl _capturectrl;
public double _totalTime;
public void ErrorAbortExample()
{
   // reference the capture control
   _capturectrl = _form.CaptureCtrl;
   // output file
   string outFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_ErrorAbortTest.avi");
   try
   {
      // set a test timer to interrupt the capture
      _form.TestTimer.Interval = 5000;
      _form.TestTimer.Tick += new EventHandler(TestTimer_Tick);
      _form.TestTimer.Start();
      // initialize the total capture time
      _totalTime = 0;
      // subscribe to the ErrorAbort event
      _capturectrl.ErrorAbort += new ErrorAbortEventHandler(CaptureCtrl_ErrorAbort);
      // subscribe to the event
      _capturectrl.Progress += new ProgressEventHandler(CaptureCtrl_Progress);
      // set a video device, use the name of your device here
      if (_capturectrl.VideoDevices["USB"] == null)
         throw new Exception("No USB video device available");
      _capturectrl.VideoDevices["USB"].Selected = true;
      // set an audio device, use the name of your device here
      _capturectrl.AudioDevices["USB"].Selected = true;
      // set the target output file
      _capturectrl.TargetFile = outFile;
      // only 10 seconds of capture time
      _capturectrl.TimeLimit = 10;
      _capturectrl.UseTimeLimit = true;
      // capture it now!
      _capturectrl.StartCapture(CaptureMode.AutoFramesAndAudio);
   }
   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 (_capturectrl.State == CaptureState.Running)
      Application.DoEvents();
}
public void TestTimer_Tick(object sender, EventArgs e)
{
   // stop the capture
   _capturectrl.StopCapture();
}
public void CaptureCtrl_Progress(object sender, ProgressEventArgs e)
{
   _totalTime = _capturectrl.CaptureTime;
}
public void CaptureCtrl_ErrorAbort(object sender, ErrorAbortEventArgs e)
{
   // set result
   _result = true;
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}