Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures
Public _result As Boolean = False
Public _form As ConvertCtrlForm = New ConvertCtrlForm()
Public _convertctrl As ConvertCtrl
Public _paused As Boolean = False
Public _percent As Integer = 0
Public Sub ConvertExample()
' reference the convert control
_convertctrl = _form.ConvertCtrl
' input and output files
Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi")
Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_ConvertExample.mp4")
Try
' set the source for conversion
_convertctrl.SourceFile = inFile
' select MP4 target format
_convertctrl.TargetFormat = TargetFormatType.MP4
' select H264 video target format
Dim index As Integer = -1
Dim trgvideoformats As TargetVideoFormats = _convertctrl.TargetFormats(_convertctrl.TargetFormat).VideoFormats
index = trgvideoformats.IndexOf("{34363248-0000-0010-8000-00AA00389B71}") ' H264
trgvideoformats.Selection = index
' select AAC audio target format
Dim trgaudioformats As TargetAudioFormats = _convertctrl.TargetFormats(_convertctrl.TargetFormat).AudioFormats
index = trgaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}") ' AAC
trgaudioformats.Selection = index
' set the target output file and format
_convertctrl.TargetFile = outFile
' set the target output format
_convertctrl.TargetFormat = TargetFormatType.MP4
' if the source has a non-zero duration, convert it
If _convertctrl.Duration > 0 Then
' set the selected area for conversion
_convertctrl.SelectionStart = 10
_convertctrl.SelectionEnd = 20
' subscribe to the progress event
AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress
' start the capture process
_convertctrl.StartConvert()
' set a timer on our form to do something
AddHandler _form.TestTimer.Tick, AddressOf TestTimer_Tick
_form.TestTimer.Interval = 1000
_form.TestTimer.Start()
' 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 OrElse _convertctrl.State = ConvertState.Paused
Application.DoEvents()
Loop
End If
Catch e1 As Exception
_result = False
End Try
End Sub
Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
If _convertctrl.PercentComplete > 30 Then
' get the percentage complete
_percent = _convertctrl.PercentComplete
' pause the conversion to demonstrate pausing
_convertctrl.PauseConvert()
_paused = True
End If
End Sub
Private Sub TestTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
_form.TestTimer.Stop()
If _paused Then
' if we are paused, resume
If _convertctrl.State = ConvertState.Paused Then
' resume the conversion
_convertctrl.RunConvert()
' set the result
_result = True
_paused = False
End If
End If
_form.TestTimer.Start()
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 ConvertCtrlForm _form = new ConvertCtrlForm();
public ConvertCtrl _convertctrl;
public bool _paused = false;
public int _percent = 0;
public void ConvertExample()
{
// reference the convert control
_convertctrl = _form.ConvertCtrl;
// input and output files
string inFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_Source.avi");
string outFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_ConvertExample.MP4");
try
{
// set the source for conversion
_convertctrl.SourceFile = inFile;
// select MP4 target format
_convertctrl.TargetFormat = TargetFormatType.MP4;
// select H264 video target format
int index = -1;
TargetVideoFormats targetvideoformats = _convertctrl.TargetFormats[_convertctrl.TargetFormat].VideoFormats;
index = targetvideoformats.IndexOf("{34363248-0000-0010-8000-00AA00389B71}");// H264
targetvideoformats.Selection = index;
// select AAC audio target format
TargetAudioFormats targetaudioformats = _convertctrl.TargetFormats[_convertctrl.TargetFormat].AudioFormats;
index = targetaudioformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}");// AAC
targetaudioformats.Selection = index;
// set the target output file and format
_convertctrl.TargetFile = outFile;
// if the source has a non-zero duration, convert it
if (_convertctrl.Duration > 0)
{
// set the selected area for conversion
_convertctrl.SelectionStart = 10;
_convertctrl.SelectionEnd = 20;
// subscribe to the progress event
_convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress);
// start the capture process
_convertctrl.StartConvert();
// set a timer on our form to do something
_form.TestTimer.Tick += new EventHandler(TestTimer_Tick);
_form.TestTimer.Interval = 1000;
_form.TestTimer.Start();
// 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
|| _convertctrl.State == ConvertState.Paused)
Application.DoEvents();
}
}
catch (Exception)
{
_result = false;
}
}
void ConvertCtrl_Progress(object sender, ProgressEventArgs e)
{
if (_convertctrl.PercentComplete > 30)
{
// get the percentage complete
_percent = _convertctrl.PercentComplete;
// pause the conversion to demonstrate pausing
_convertctrl.PauseConvert();
_paused = true;
}
}
void TestTimer_Tick(object sender, EventArgs e)
{
_form.TestTimer.Stop();
if (_paused)
{
// if we are paused, resume
if (_convertctrl.State == ConvertState.Paused)
{
// resume the conversion
_convertctrl.RunConvert();
// set the result
_result = true;
_paused = false;
}
}
_form.TestTimer.Start();
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}