←Select platform

FindFormat Method

Summary

Determines the index of a specific TargetAudioType in the collection based on the audio properties in the TargetFormat object.

Syntax

C#
VB
C++
public int FindFormat( 
   TargetFormat format 
) 
Public Function FindFormat( _ 
   ByVal format As Leadtools.Mediafoundation.TargetFormat _ 
) As Integer 

Parameters

format
The TargetFormat object to locate its audio properties in the audio types collection.

Return Value

The zero-based index of the found item; otherwise -1 if no item found.

Remarks

This method searches the underlying item collection to locate the item having the audio properties in the target format object specified. The audio properties are: AudioAvgBytesPerSecond, AudioBitsPerSample, AudioNumChannels and AudioSamplesPerSecond.

Example

C#
VB
using Leadtools; 
using Leadtools.MediaFoundation; 
using LeadtoolsMediaFoundationExamples.Fixtures; 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(); 
 
public void IndexContainsExample() 
{ 
   // reference the capture control 
   CaptureCtrl capturectrl = _form.CaptureCtrl; 
 
   try 
   { 
      // set an audio device first, you should use your audio device name here 
      if (capturectrl.AudioDevices["USB"] == null) 
         throw new Exception("No USB audio device available"); 
 
      capturectrl.AudioDevices["USB"].Selected = true; 
 
      // reference the target formats object 
      TargetFormats formats = capturectrl.TargetFormats; 
 
      // reference the target format object 
      TargetFormat tf = formats[TargetFormatType.MP4]; 
 
      // reference the target audio formats object 
      TargetAudioFormats taformats = tf.AudioFormats; 
 
      // check the index using a name string 
      int i = taformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}");// AAC 
 
      // reference the target audio format object 
      TargetAudioFormat taformat = taformats[i]; 
 
      // select the target audio format 
      taformat.Selected = true; 
 
      // get target audio types collection 
      TargetAudioTypes targetaudiotypes = taformat.AudioTypes; 
 
      // get target audio types count 
      if (targetaudiotypes.Count <= 0) 
      { 
         throw new Exception("No audio types available for the selected audio format"); 
      } 
 
      // set audio properties on the target format. 
      tf.AudioAvgBytesPerSecond = 24000; 
      tf.AudioBitsPerSample = 16; 
      tf.AudioNumChannels = 1; 
      tf.AudioSamplesPerSecond = 48000; 
 
      // find the index of the audio type which have the audio properties selected in the target format 
      int nIndex = targetaudiotypes.FindFormat(tf); 
 
      // access the type via the collection indexer 
      TargetAudioType tatype = targetaudiotypes[nIndex]; 
 
      // check if the collection contains this type  
      // (it should we just got it with IndexOf above) 
      if (targetaudiotypes.Contains(tatype)) 
      { 
         // set the result to what we expect 
         _result = true; 
      } 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
} 
Imports Leadtools 
Imports Leadtools.MediaFoundation 
Imports LeadtoolsMediaFoundationExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As CaptureCtrlForm = New CaptureCtrlForm() 
 
Public Sub IndexContainsExample() 
   ' reference the capture control 
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl 
 
   Try 
      ' set an audio device first, you should use your audio 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 
 
      ' reference the target formats object 
      Dim formats As TargetFormats = capturectrl.TargetFormats 
 
      ' reference the target format object 
      Dim tf As TargetFormat = formats(TargetFormatType.MP4) 
 
      ' reference the target audio formats object 
      Dim taformats As TargetAudioFormats = tf.AudioFormats 
 
      ' check the index using a name string 
      Dim i As Integer = taformats.IndexOf("{00001610-0000-0010-8000-00AA00389B71}") ' AAC 
 
      ' reference the target audio format object 
      Dim taformat As TargetAudioFormat = taformats(i) 
 
      ' select the target audio format 
      taformat.Selected = True 
 
      ' get target audio types collection 
      Dim targetaudiotypes As TargetAudioTypes = taformat.AudioTypes 
 
      ' get target audio types count 
      If targetaudiotypes.Count <= 0 Then 
         Throw New Exception("No audio types available for the selected audio format") 
      End If 
 
      ' set audio properties on the target format. 
      tf.AudioAvgBytesPerSecond = 24000 
      tf.AudioBitsPerSample = 16 
      tf.AudioNumChannels = 1 
      tf.AudioSamplesPerSecond = 48000 
 
      ' find the index of the audio type which have the audio properties selected in the target format 
      Dim nIndex As Integer = targetaudiotypes.FindFormat(tf) 
 
      ' access the type via the collection indexer 
      Dim tatype As TargetAudioType = targetaudiotypes(nIndex) 
 
      ' check if the collection contains this type  
      ' (it should we just got it with IndexOf above) 
      If targetaudiotypes.Contains(tatype) Then 
         ' set the result to what we expect 
         _result = True 
      End If 
   Catch e1 As Exception 
      _result = False 
   End Try 
End Sub 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MediaFoundation Assembly