LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

SetChannel Method

Show in webframe
Example 



The TV channel to set.
A predefined video Subchannel. This parameter is valid only for ATSC digital TV broadcasts.
A predefined audio Subchannel. This parameter is valid only for ATSC digital TV broadcasts.
Sets the TV channel.
Syntax
'Declaration
 
Public Sub SetChannel( _
   ByVal Channel As Integer, _
   ByVal VideoSubChannel As Integer, _
   ByVal AudioSubChannel As Integer _
) 
'Usage
 
Dim instance As TVTuner
Dim Channel As Integer
Dim VideoSubChannel As Integer
Dim AudioSubChannel As Integer
 
instance.SetChannel(Channel, VideoSubChannel, AudioSubChannel)
public void SetChannel( 
   int Channel,
   int VideoSubChannel,
   int AudioSubChannel
)
public:
void SetChannel( 
   int Channel,
   int VideoSubChannel,
   int AudioSubChannel
) 

Parameters

Channel
The TV channel to set.
VideoSubChannel
A predefined video Subchannel. This parameter is valid only for ATSC digital TV broadcasts.
AudioSubChannel
A predefined audio Subchannel. This parameter is valid only for ATSC digital TV broadcasts.
Remarks
Sets the TV channel. The Channel property contains the current TV channel. This method eventually converts the TV channel to a TV frequency. For a list of frequencies for channels, see the Microsoft documentation on International Analog TV Tuning. For more detailed information, refer to Microsoft documentation for IAMTVTuner.put_Channel.
Example
Copy Code  
Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures

Public _result As Boolean = False
Public _form As CaptureCtrlForm = New CaptureCtrlForm()
Public Sub DigitalTVTunerExample()
   ' reference the forms capture control and tv tuner
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl

   Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "TVTuner_DigitalTVTunerExample.wmv")

   Dim mainChannel As Integer = 27
   Dim subChannel As Integer = -1
   Dim newSubChannel As Integer = -1
   Dim subChannelList As Integer() = Nothing

   Try
      capturectrl.Preview = True
      ' select the first digital tuner device with BDA in it's name 
      ' Replace "BDA" with your video capture device name 
      If Not capturectrl.VideoDevices("BDA") Is Nothing Then
         capturectrl.VideoDevices("BDA").Selected = True
      End If

      ' get the TV Tuner device 
      Dim tvTuner As TVTuner = capturectrl.TVTuner

      ' Check if TV tuner is valid 
      If Not tvTuner Is Nothing Then
         ' set the input type to cable and set the channel 
         tvTuner.SetInputType(0, TunerInputType.Antenna)
         tvTuner.SetChannel(mainChannel, -1, -1)

         ' get the current video sub channel
         subChannel = tvTuner.VideoSubChannel

         ' list the sub-channels for the main channle first
         If tvTuner.VideoSubChannelCount > 0 Then
            System.Diagnostics.Debug.WriteLine(" Main Channel: " & mainChannel)
            subChannelList = New Integer(tvTuner.VideoSubChannelCount - 1) {}
            Dim i As Integer = 0
            Do While i < tvTuner.VideoSubChannelCount
               subChannelList(i) = tvTuner.VideoSubChannelValue(i)
               System.Diagnostics.Debug.WriteLine(" Sub Channel: " & subChannelList(i))
               i += 1
            Loop
         End If

         ' select the first sub-channel in the list
         If Not subChannelList Is Nothing AndAlso subChannelList.Length > 0 Then
            tvTuner.SetChannel(mainChannel, subChannelList(0), -1)
            mainChannel = tvTuner.Channel
            newSubChannel = tvTuner.VideoSubChannel
            System.Diagnostics.Debug.WriteLine("Selected Channel: " & mainChannel & "." & subChannel)
         End If

         ' if the Main and Sub channel value are postive, it means tv tuner is happay and dandy, let starts capture
         If mainChannel > 0 AndAlso subChannel > 0 Then
            System.Diagnostics.Debug.WriteLine("Start Capturing")
            capturectrl.TimeLimit = 30 ' just 30 seconds of capture time
            capturectrl.UseTimeLimit = True

            capturectrl.TargetFormat = TargetFormatType.WMV
            capturectrl.TargetFile = outFile

            capturectrl.StartCapture(CaptureMode.VideoAndAudio)
         End If
      End If

      ' 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

      System.Diagnostics.Debug.WriteLine("Finish Capturing")

      ' if TV tuner is valid 
      If Not tvTuner Is Nothing Then
         ' and set the result to what we expect 
         _result = (subChannel <> newSubChannel)
      End If
   Catch ex As Exception
      _result = False
      System.Diagnostics.Debug.WriteLine(ex)
   End Try
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 CaptureCtrlForm _form = new CaptureCtrlForm();
public void DigitalTVTunerExample()
{
   // reference the forms capture control and tv tuner
   CaptureCtrl capturectrl = _form.CaptureCtrl;

   string outFile = Path.Combine(LEAD_VARS.MediaDir,"TVTuner_DigitalTVTunerExample.wmv");

   int mainChannel = 27;
   int subChannel = -1;
   int newSubChannel = -1;
   int[] subChannelList = null;

   try
   {
      capturectrl.Preview = true;
      // select the first digital tuner device with BDA in it's name 
      // Replace "BDA" with your video capture device name 
      if (capturectrl.VideoDevices["BDA"] != null)
         capturectrl.VideoDevices["BDA"].Selected = true;

      // get the TV Tuner device 
      TVTuner tvTuner = capturectrl.TVTuner;

      // Check if TV tuner is valid 
      if (tvTuner != null)
      {
         // set the input type to cable and set the channel 
         tvTuner.SetInputType(0, TunerInputType.Antenna);
         tvTuner.SetChannel(mainChannel, -1, -1);

         // get the current video sub channel
         subChannel = tvTuner.VideoSubChannel;

         // list the sub-channels for the main channle first
         if (tvTuner.VideoSubChannelCount > 0)
         {
            System.Diagnostics.Debug.WriteLine(" Main Channel: " + mainChannel);
            subChannelList = new int[tvTuner.VideoSubChannelCount];
            for (int i = 0; i < tvTuner.VideoSubChannelCount; i++)
            {
               subChannelList[i] = tvTuner.VideoSubChannelValue(i);
               System.Diagnostics.Debug.WriteLine(" Sub Channel: " + subChannelList[i]);
            }
         }

         // select the first sub-channel in the list
         if (subChannelList != null && subChannelList.Length > 0)
         {
            tvTuner.SetChannel(mainChannel, subChannelList[0], -1);
            mainChannel = tvTuner.Channel;
            newSubChannel = tvTuner.VideoSubChannel;
            System.Diagnostics.Debug.WriteLine("Selected Channel: " + mainChannel + "." + subChannel);
         }

         // if the Main and Sub channel value are postive, 
         // it means tv tuner is happay and dandy, let starts capture
         if (mainChannel > 0 && subChannel > 0)
         {
            System.Diagnostics.Debug.WriteLine("Start Capturing");
            capturectrl.TimeLimit = 30;     // just 30 seconds of capture time 
            capturectrl.UseTimeLimit = true;

            capturectrl.TargetFormat = TargetFormatType.WMV;
            capturectrl.TargetFile = outFile;

            capturectrl.StartCapture(CaptureMode.VideoAndAudio);
         }
      }

      // 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();

      System.Diagnostics.Debug.WriteLine("Finish Capturing");

      // if TV tuner is valid 
      if (tvTuner != null)
      {
         // and set the result to what we expect 
         _result = (subChannel != newSubChannel);
      }
   }
   catch (Exception ex)
   {
      _result = false;
      System.Diagnostics.Debug.WriteLine(ex);
   }
}

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

Target Platforms

See Also

Reference

TVTuner Class
TVTuner 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