LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

HasDialog Method (PlayCtrl)

Show in webframe
Example 



A PlayDlg enumeration value that specifies which dialog's availability is to be checked.
Checks whether the specified property dialog is available.
Syntax
'Declaration
 
Public Overridable Function HasDialog( _
   ByVal dialog As PlayDlg _
) As Boolean
'Usage
 
Dim instance As PlayCtrl
Dim dialog As PlayDlg
Dim value As Boolean
 
value = instance.HasDialog(dialog)
public virtual bool HasDialog( 
   PlayDlg dialog
)
public:
virtual bool HasDialog( 
   PlayDlg dialog
) 

Parameters

dialog
A PlayDlg enumeration value that specifies which dialog's availability is to be checked.

Return Value

true if the specified property dialog is available; otherwise, it is false.
Example
Copy Code  
Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures

Public _result As Boolean = False
Public _form As PlayCtrlForm = New PlayCtrlForm()
Public _playctrl As PlayCtrl
Public _seekingCaps As PlaySeeking
Public _start As TimeSpan = TimeSpan.Zero
Public Sub HasDialogExample()
   ' reference the play control
   _playctrl = _form.PlayCtrl

   ' input file for playback
   Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi")

   Try
      ' turn off autostart and auto rewind
      _playctrl.AutoStart = False
      _playctrl.AutoRewind = False

      ' set the source file
      _playctrl.SourceFile = inFile

      ' show some media info if available
      ShowMediaInfo()

      ' the HasDialog method tells us that the control
      ' can display the desired settings dialog.
      ' check to see if the selected video processor properties dialog is available
      If _playctrl.HasDialog(PlayDlg.SelVideoProcessor) Then
         ' now show it to change some settings
         _playctrl.ShowDialog(PlayDlg.SelVideoProcessor, _form)
         _result = True
      End If

      ' get the source object type
      Dim sot As SourceObjectType = _playctrl.SourceType

      ' check some audio properties
      Dim mute As Boolean = _playctrl.Mute
      Dim bal As Integer = _playctrl.Balance
      Dim vol As Integer = _playctrl.Volume

      ' seeking caps - you can use these to enable menu states or toolbar buttons
      _seekingCaps = _playctrl.CheckSeekingCapabilities(PlaySeeking.Forward Or PlaySeeking.Backward)

      ' subscribe to the key press event to demo play functions
      AddHandler _playctrl.KeyPress, AddressOf PlayCtrl_KeyPress

      ' start the capture process
      _playctrl.Run()

      ' 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 _
           OrElse _playctrl.State = PlayState.NotReady
         Application.DoEvents()
      Loop

      ' call reset source here to release resources
      ' but not necessary if we are just exiting
      _playctrl.ResetSource()
   Catch e1 As Exception
      _result = False
   End Try
End Sub

' state variables for helper timer states
Public _markedSelStart As Boolean = False
Public _markedSelEnd As Boolean = False
Public _seekedSelStart As Boolean = False
Public _seekedSelEnd As Boolean = False

' key press event handler to manage playback functions
Private Sub PlayCtrl_KeyPress(ByVal sender As Object, ByVal e As Leadtools.MediaFoundation.KeyPressEventArgs)
   Dim key As Char = CChar(ChrW(e.keyAscii))
   Select Case key
      Case "b"c
         If (Not _markedSelStart) Then
            _markedSelStart = True
            _playctrl.MarkSelectionStart()
            System.Diagnostics.Debug.WriteLine("Mark Selection Start: " & _playctrl.SelectionStart.ToString() & " secs")
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString())
         End If
      Case "e"c
         If (Not _markedSelEnd) Then
            _markedSelEnd = True
            _playctrl.Pause()
            _playctrl.MarkSelectionEnd()
            System.Diagnostics.Debug.WriteLine("Mark Selection End: " & _playctrl.SelectionEnd.ToString() & " secs")
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString())
            _playctrl.SeekSelectionStart()
            _playctrl.Run()
         End If
      Case "s"c
         If (Not _seekedSelStart) Then
            _seekedSelStart = True
            System.Diagnostics.Debug.WriteLine("Seek To Selection Start: " & _playctrl.SelectionStart.ToString() & " secs")
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString())
            _playctrl.SeekSelectionStart()
         End If
      Case "f"c
         ' toggle full screen
         _playctrl.ToggleFullScreenMode()
      Case "+"c
         If _playctrl.State = PlayState.Running Then
            _playctrl.Pause()
         End If

         _playctrl.NextFrame()
      Case "-"c
         If _playctrl.State = PlayState.Running Then
            _playctrl.Pause()
         End If

         _playctrl.PreviousFrame()
      Case "z"c
         If (Not _seekedSelEnd) Then
            ' turn off full screen mode
            _playctrl.FullScreenMode = False

            _seekedSelEnd = True
            System.Diagnostics.Debug.WriteLine("Seek To Selection End: " & _playctrl.SelectionEnd.ToString() & " secs")
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString())
            _playctrl.SeekSelectionEnd()
         End If
      Case "x"c
         _playctrl.Stop()

   End Select
End Sub

Private Sub ShowMediaInfo()
   Dim d As Double = 0
   Dim sa, scr, sd, sr, st As String

   sa = "Unavailable"
   scr = "Unavailable"
   sd = "Unavailable"
   sr = "Unavailable"
   st = "Unavailable"

   Try
      d = _playctrl.FrameDuration
      sa = _playctrl.Author
      scr = _playctrl.Copyright
      sd = _playctrl.Description
      sr = _playctrl.Rating
      st = _playctrl.Title
   Catch e1 As Exception
   End Try

   MessageBox.Show(_form, String.Format("Duration: {0}" _
                                        & Microsoft.VisualBasic.Constants.vbLf _
                                        & "Author: {1}" _
                                        & Microsoft.VisualBasic.Constants.vbLf _
                                        & "Copyright: {2}" _
                                        & Microsoft.VisualBasic.Constants.vbLf _
                                        & "Desc: {3}" & Microsoft.VisualBasic.Constants.vbLf _
                                        & "Rating: {4}" & Microsoft.VisualBasic.Constants.vbLf _
                                        & "Title: {5}" _
                                        & Microsoft.VisualBasic.Constants.vbLf, _
                                        d, sa, scr, sd, sr, st), "Media Info")
End Sub

Private Sub SelectedOptions()
   _playctrl.SeekStart()
   _playctrl.SeekEnd()
   Dim te As Integer = _playctrl.TrackingSelectionEnd
   Dim ts As Integer = _playctrl.TrackingSelectionStart
   Dim se As Double = _playctrl.SelectionEnd
   Dim ss As Double = _playctrl.SelectionStart
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 PlayCtrl _playctrl;
public PlaySeeking _seekingCaps;
public TimeSpan _start = TimeSpan.Zero;
public void HasDialogExample()
{
   // reference the play control
   _playctrl = _form.PlayCtrl;

   // input file for playback
   string inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_Source.avi");

   try
   {
      // turn off autostart and auto rewind
      _playctrl.AutoStart = false;
      _playctrl.AutoRewind = false;

      // set the source file
      _playctrl.SourceFile = inFile;

      // show some media info if available
      ShowMediaInfo();

      // the HasDialog method tells us that the control
      // can display the desired settings dialog.
      // check to see if the selected video processor properties dialog is available
      if (_playctrl.HasDialog(PlayDlg.SelVideoProcessor))
      {
         // now show it to change some settings
         _playctrl.ShowDialog(PlayDlg.SelVideoProcessor, _form);
         _result = true;
      }

      // get the source object type
      SourceObjectType sot = _playctrl.SourceType;

      // check some audio properties
      bool mute = _playctrl.Mute;
      int bal = _playctrl.Balance;
      int vol = _playctrl.Volume;

      // seeking caps - you can use these to enable menu states or toolbar buttons
      _seekingCaps = _playctrl.CheckSeekingCapabilities(PlaySeeking.Forward | PlaySeeking.Backward);

      // subscribe to the key press event to demo play functions
      _playctrl.KeyPress += new Leadtools.MediaFoundation.KeyPressEventHandler(PlayCtrl_KeyPress);

      // start the capture process
      _playctrl.Run();

      // 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
         || _playctrl.State == PlayState.NotReady)
         Application.DoEvents();

      // call reset source here to release resources
      // but not necessary if we are just exiting
      _playctrl.ResetSource();
   }
   catch (Exception)
   {
      _result = false;
   }
}

// state variables for helper timer states
public bool _markedSelStart = false;
public bool _markedSelEnd = false;
public bool _seekedSelStart = false;
public bool _seekedSelEnd = false;

// key press event handler to manage playback functions
void PlayCtrl_KeyPress(object sender, Leadtools.MediaFoundation.KeyPressEventArgs e)
{
   char key = (char)e.keyAscii;
   switch (key)
   {
      case 'b':
         if (!_markedSelStart)
         {
            _markedSelStart = true;
            _playctrl.MarkSelectionStart();
            System.Diagnostics.Debug.WriteLine("Mark Selection Start: " + _playctrl.SelectionStart.ToString() + " secs");
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " + _playctrl.State.ToString());
         }
         break;
      case 'e':
         if (!_markedSelEnd)
         {
            _markedSelEnd = true;
            _playctrl.Pause();
            _playctrl.MarkSelectionEnd();
            System.Diagnostics.Debug.WriteLine("Mark Selection End: " 
                                               + _playctrl.SelectionEnd.ToString() 
                                               + " secs");
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString());
            _playctrl.SeekSelectionStart();
            _playctrl.Run();
         }
         break;
      case 's':
         if (!_seekedSelStart)
         {
            _seekedSelStart = true;
            System.Diagnostics.Debug.WriteLine("Seek To Selection Start: " 
                                               + _playctrl.SelectionStart.ToString() 
                                               + " secs");
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString());
            _playctrl.SeekSelectionStart();
         }
         break;
      case 'f':
         // toggle full screen
         _playctrl.ToggleFullScreenMode();
         break;
      case '+':
         if (_playctrl.State == PlayState.Running)
            _playctrl.Pause();

         _playctrl.NextFrame();
         break;
      case '-':
         if (_playctrl.State == PlayState.Running)
            _playctrl.Pause();

         _playctrl.PreviousFrame();
         break;
      case 'z':
         if (!_seekedSelEnd)
         {
            // turn off full screen mode
            _playctrl.FullScreenMode = false;

            _seekedSelEnd = true;
            System.Diagnostics.Debug.WriteLine("Seek To Selection End: " 
                                               + _playctrl.SelectionEnd.ToString() 
                                               + " secs");
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString());
            _playctrl.SeekSelectionEnd();
         }
         break;
      case 'x':
         _playctrl.Stop();
         break;

   }
}

private void ShowMediaInfo()
{
   double d = 0;
   string sa, scr, sd, sr, st;

   sa = scr = sd = sr = st = "Unavailable";

   try
   {
      d = _playctrl.FrameDuration;
      sa = _playctrl.Author;
      scr = _playctrl.Copyright;
      sd = _playctrl.Description;
      sr = _playctrl.Rating;
      st = _playctrl.Title;
   }
   catch (Exception)
   {
   }

   MessageBox.Show(_form, string.Format("Duration: {0}\nAuthor: {1}\nCopyright: {2}\nDesc: {3}\nRating: {4}\nTitle: {5}\n",
      d, sa, scr, sd, sr, st), "Media Info");
}

void SelectedOptions()
{
   _playctrl.SeekStart();
   _playctrl.SeekEnd();
   int te = _playctrl.TrackingSelectionEnd;
   int ts = _playctrl.TrackingSelectionStart;
   double se = _playctrl.SelectionEnd;
   double ss = _playctrl.SelectionStart;
}

static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}
Requirements

Target Platforms

See Also

Reference

PlayCtrl Class
PlayCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.MediaFoundation requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features