CopyTarget Method

Summary
Copies the valid media data from the target to the specified file.
Syntax
C#
VB
C++
public virtual void CopyTarget( 
   string fileName, 
   bool allowEscAbort 
) 
Public Overridable Sub CopyTarget( _ 
   ByVal fileName As String, _ 
   ByVal allowEscAbort As Boolean _ 
)  
public: 
virtual void CopyTarget(  
   String^ fileName, 
   bool allowEscAbort 
)  

Parameters

fileName
Character string containing the destination filename.

allowEscAbort
Value indicating whether pressing the ESC key will abort the copy operation.

Remarks

The new file will contain only valid data. As a result, the destination file can be much shorter than the target. Typically, you will always capture to the same huge pre-allocated target and use this method to copy the data you want to save from each capture to a new file. If the method fails, an error is raised. For more information, refer to the Error Codes.

Example
C#
VB
using Leadtools; 
using Leadtools.Multimedia; 
using LeadtoolsMultimediaExamples.Fixtures; 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(); 
 
public void CopyTargetExample() 
{ 
   // reference the capture control 
   CaptureCtrl capturectrl = _form.CaptureCtrl; 
 
   // output file 
   string outFile = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CopyTargetExampleTarget.avi"); 
   string outCopyFile = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CopyTargetExampleCopyTarget.avi"); 
 
   try 
   { 
      // set the source video device, select using your device name here 
      if (capturectrl.VideoDevices["USB"] == null) 
         throw new Exception("No USB video device available"); 
 
      capturectrl.VideoDevices["USB"].Selected = true; 
 
      // set the source video device, select using your device name here 
      if (capturectrl.AudioDevices["USB"] == null) 
         throw new Exception("No USB audio device available"); 
 
      capturectrl.AudioDevices["USB"].Selected = true; 
 
      // set the video compressor to H264 
      capturectrl.VideoCompressors.H264.Selected = true; 
 
      // set the audio compressor to AC3 
      capturectrl.AudioCompressors.AC3.Selected = true; 
 
      // set the target files 
      capturectrl.TargetFile = outFile; 
 
      // check whether we can capture video 
      if (capturectrl.IsModeAvailable(CaptureMode.VideoAndAudio)) 
      { 
         capturectrl.FrameDelay = .033;  // 30 frames per second 
         capturectrl.TimeLimit = 10;     // just 10 seconds of capture time 
         capturectrl.UseTimeLimit = true; 
 
         // start the capture process 
         capturectrl.StartCapture(CaptureMode.VideoAndAudio); 
      } 
   } 
   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(); 
 
   try 
   { 
      // try to copy the target data to a new file 
      capturectrl.CopyTarget(outCopyFile, false); 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
 
   // set the result to what we expect 
   _result = File.Exists(outCopyFile); 
} 
 
static class LEAD_VARS 
{ 
   public const string MediaDir = @"C:\LEADTOOLS21\Media"; 
} 
Imports Leadtools 
Imports Leadtools.Multimedia 
Imports LeadtoolsMultimediaExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As CaptureCtrlForm = New CaptureCtrlForm() 
 
Public Sub CopyTargetExample() 
   ' reference the capture control 
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl 
 
   ' output file 
   Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CopyTargetExampleTarget.avi") 
   Dim outCopyFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CopyTargetExampleCopyTarget.avi") 
 
   Try 
      ' set the source video device, select using your device name here 
      If capturectrl.VideoDevices("USB") Is Nothing Then 
         Throw New Exception("No USB video device available") 
      End If 
 
      capturectrl.VideoDevices("USB").Selected = True 
 
      ' set the source video device, select using your device name here 
      If capturectrl.AudioDevices("USB") Is Nothing Then 
         Throw New Exception("No USB audio device available") 
      End If 
 
      capturectrl.AudioDevices("USB").Selected = True 
 
      ' set the video compressor to H264 
      capturectrl.VideoCompressors.H264.Selected = True 
 
      ' set the audio compressor to AC3 
      capturectrl.AudioCompressors.AC3.Selected = True 
 
      ' set the target files 
      capturectrl.TargetFile = outFile 
 
      ' check if we have can capture video 
      If capturectrl.IsModeAvailable(CaptureMode.VideoAndAudio) Then 
         capturectrl.FrameDelay = 0.033 ' 30 frames per second 
         capturectrl.TimeLimit = 10 ' just 10 seconds of capture time 
         capturectrl.UseTimeLimit = True 
 
         ' start the capture process 
         capturectrl.StartCapture(CaptureMode.VideoAndAudio) 
      End If 
   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 capturectrl.State = CaptureState.Running 
      Application.DoEvents() 
   Loop 
 
   Try 
      ' try to copy the target data to a new file 
      capturectrl.CopyTarget(outCopyFile, False) 
   Catch e2 As Exception 
      _result = False 
   End Try 
 
   ' set the result to what we expect 
   _result = File.Exists(outCopyFile) 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const MediaDir As String = "C:\LEADTOOLS21\Media" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Multimedia Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.