GetMediaType Method

Summary
Gets the media type of the stream in the form of a MediaType object.
Syntax
C#
VB
C++
public MediaType GetMediaType() 
Public Function GetMediaType() As MediaType 
public: 
MediaType^ GetMediaType();  
Remarks

For more information, refer to the Microsoft documentation for IWMMediaProps.GetMediaType.

Example
C#
VB
using Leadtools; 
using Leadtools.Multimedia; 
using LeadtoolsMultimediaExamples.Fixtures; 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(); 
 
public void StreamTypeExample() 
{ 
   // reference the capture control 
   CaptureCtrl capturectrl = _form.CaptureCtrl; 
   string inFile = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_Source.avi"); 
 
   try 
   { 
      // reference the profile if available 
      WMProfile CurrentProfile = capturectrl.WMProfile; 
 
      // if we have a profile display the info 
      if (CurrentProfile != null) 
         MessageBox.Show(GetStreamInfo(CurrentProfile), "Stream Info", MessageBoxButtons.OK); 
   } 
   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(); 
} 
 
// discovering streams  
private string GetStreamInfo(WMProfile Profile) 
{ 
   WMStreamConfig streamConfig; 
   string streamInfo = string.Empty; 
 
   // show all the information regarding the streams 
   for (int i = 0; i < Profile.StreamCount - 1; i++) 
   { 
      streamConfig = Profile.GetStream(0); 
      streamInfo += "[[ Stream " + (i + 1).ToString() + " ]]"; 
 
      // get the major type of the stream 
      streamInfo += "\n type: " + streamConfig.StreamType; 
 
      // get Stream number 
      streamInfo += "\n number: " + streamConfig.StreamNumber.ToString(); 
 
      // get Stream name 
      streamInfo += "\n name: " + streamConfig.StreamName; 
 
      // get connection name 
      streamInfo += "\n connection name: " + streamConfig.ConnectionName; 
 
      // get Bitrate 
      streamInfo += "\n bitrate: " + streamConfig.Bitrate.ToString(); 
 
      // get the maximum latency (time in milliseconds) between stream reception and display 
      streamInfo += "\n buffer window: " + streamConfig.BufferWindow.ToString(); 
 
      // get the major type of the media in the stream 
      streamInfo += "\n majortype: " + streamConfig.Type; 
 
      // get the maximum key frame time interval (in 100-nano seconds)  
      streamInfo += "\n max keyframe spacing: " + streamConfig.MaxKeyFrameSpacing.ToString(); 
 
      // get the Quality, range from 0 to 100 
      // where zero denotes maximum frame rate and 100 denotes maximum quality.  
      streamInfo += "\n stream quality: "; 
 
      if (streamConfig.Quality > -1) 
         streamInfo += streamConfig.Quality.ToString(); 
      else 
         streamInfo += "(unknown)"; 
   } 
 
   return streamInfo; 
} 
 
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 StreamTypeExample() 
   ' reference the capture control 
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl 
   Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_Source.avi") 
 
   Try 
      ' reference the profile if available 
      Dim CurrentProfile As WMProfile = capturectrl.WMProfile 
 
      ' if we have a profile display the info 
      If Not CurrentProfile Is Nothing Then 
         MessageBox.Show(GetStreamInfo(CurrentProfile), "Stream Info", MessageBoxButtons.OK) 
      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 
End Sub 
 
' discovering streams  
Private Function GetStreamInfo(ByVal Profile As WMProfile) As String 
   Dim streamConfig As WMStreamConfig 
   Dim streamInfo As String = String.Empty 
 
   ' show all the information regarding the streams 
   Dim i As Integer = 0 
   Do While i < Profile.StreamCount - 1 
      streamConfig = Profile.GetStream(0) 
      streamInfo &= "[[ Stream " & (i + 1).ToString() & " ]]" 
 
      ' get the major type of the stream 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " type: " & streamConfig.StreamType 
 
      ' get Stream number 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " number: " & streamConfig.StreamNumber.ToString() 
 
      ' get Stream name 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " name: " & streamConfig.StreamName 
 
      ' get connection name 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " connection name: " & streamConfig.ConnectionName 
 
      ' get Bitrate 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " bitrate: " & streamConfig.Bitrate.ToString() 
 
      ' get the maximum latency (time in milliseconds) between stream reception and display 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " buffer window: " & streamConfig.BufferWindow.ToString() 
 
      ' get the major type of the media in the stream 
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " majortype: " & streamConfig.Type 
 
      ' get the maximum key frame time interval (in 100-nano seconds)  
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " max keyframe spacing: " & streamConfig.MaxKeyFrameSpacing.ToString() 
 
      ' get the Quality, range from 0 to 100 
      ' where zero denotes maximum frame rate and 100 denotes maximum quality.  
      streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " stream quality: " 
 
      If streamConfig.Quality > -1 Then 
         streamInfo &= streamConfig.Quality.ToString() 
      Else 
         streamInfo &= "(unknown)" 
      End If 
      i += 1 
   Loop 
 
   Return streamInfo 
End Function 
 
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.