Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures
Public _result As Boolean = False
Public _form As PlayCtrlForm = New PlayCtrlForm()
Public Sub KeyPressesExample()
Dim playctrl As PlayCtrl = _form.PlayCtrl
Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi")
Try
' turn off autostart
playctrl.AutoStart = False
' set the source media file
playctrl.SourceFile = inFile
' subscribe to the key events
AddHandler playctrl.KeyDown, AddressOf KeyDown_Helper
AddHandler playctrl.KeyUp, AddressOf KeyUp_Helper
AddHandler playctrl.KeyPress, AddressOf KeyPress_Helper
' play it now!
playctrl.Run()
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 playctrl.State = PlayState.Running OrElse playctrl.State = PlayState.Paused
Application.DoEvents()
Loop
' clean up event handlers
RemoveHandler playctrl.KeyDown, AddressOf KeyDown_Helper
RemoveHandler playctrl.KeyUp, AddressOf KeyUp_Helper
RemoveHandler playctrl.KeyPress, AddressOf KeyPress_Helper
End Sub
Private Sub KeyPress_Helper(ByVal sender As Object, ByVal e As Leadtools.MediaFoundation.KeyPressEventArgs)
' pause if running
If e.keyAscii = CShort("p") AndAlso _form.PlayCtrl.State = PlayState.Running Then
' pause playback
_form.PlayCtrl.Pause()
' set result
_result = True
Else ' run if paused
If e.keyAscii = CShort("r") AndAlso _form.PlayCtrl.State = PlayState.Paused Then
' resume playback
_form.PlayCtrl.Run()
' set result
_result = True
Else ' run if paused
If e.keyAscii = CShort("s") AndAlso (_form.PlayCtrl.State = PlayState.Paused _
OrElse _form.PlayCtrl.State = PlayState.Running) Then
' resume playback
_form.PlayCtrl.Stop()
' set result
_result = True
End If
End If
End If
End Sub
Private Sub KeyUp_Helper(ByVal sender As Object, ByVal e As KeyUpEventArgs)
' do something for key up
End Sub
Public Sub KeyDown_Helper(ByVal sender As Object, ByVal e As KeyDownEventArgs)
' do something for key down
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 PlayCtrlForm _form = new PlayCtrlForm();
public void KeyPressesExample()
{
PlayCtrl playctrl = _form.PlayCtrl;
string inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_Source.avi");
try
{
// turn off autostart
playctrl.AutoStart = false;
// set the source media file
playctrl.SourceFile = inFile;
// subscribe to the key events
playctrl.KeyDown += KeyDown_Helper;
playctrl.KeyUp += KeyUp_Helper;
playctrl.KeyPress += KeyPress_Helper;
// play it now!
playctrl.Run();
}
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 (playctrl.State == PlayState.Running || playctrl.State == PlayState.Paused)
Application.DoEvents();
// clean up event handlers
playctrl.KeyDown -= KeyDown_Helper;
playctrl.KeyUp -= KeyUp_Helper;
playctrl.KeyPress -= KeyPress_Helper;
}
void KeyPress_Helper(object sender, Leadtools.MediaFoundation.KeyPressEventArgs e)
{
// pause if running
if (e.keyAscii == 'p' && _form.PlayCtrl.State == PlayState.Running)
{
// pause playback
_form.PlayCtrl.Pause();
// set result
_result = true;
}
else // run if paused
if (e.keyAscii == 'r' && _form.PlayCtrl.State == PlayState.Paused)
{
// resume playback
_form.PlayCtrl.Run();
// set result
_result = true;
}
else // run if paused
if (e.keyAscii == 's' && (_form.PlayCtrl.State == PlayState.Paused || _form.PlayCtrl.State == PlayState.Running))
{
// resume playback
_form.PlayCtrl.Stop();
// set result
_result = true;
}
}
void KeyUp_Helper(object sender, KeyUpEventArgs e)
{
// do something for key up
}
public void KeyDown_Helper(object sender, KeyDownEventArgs e)
{
// do something for key down
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}