SetChannel Method

Summary
Sets the TV channel.
Syntax
C#
C++/CLI
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
C#
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:\LEADTOOLS22\Media"; 
} 
Requirements

Target Platforms

See Also

Reference

TVTuner Class

TVTuner Members

Help Version 22.0.2022.12.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MediaFoundation Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.