Gets the current video sub-channel. 
         
             
            
Syntax
| Visual Basic (Declaration) |   | 
|---|
Public ReadOnly Property VideoSubChannel As Integer  | 
 
| Visual Basic (Usage) |  Copy Code | 
|---|
Dim instance As TVTuner
Dim value As Integer
 
value = instance.VideoSubChannel  | 
 
| C# |   | 
|---|
public int VideoSubChannel {get;} | 
 
| C++/CLI |   | 
|---|
public:
property int VideoSubChannel {
   int get();
} | 
 
             
             
            Property Value
A 
TunerSubChannel enumeration value if default or not tuned; otherwise the current video sub-channel. For a list of frequencies for channels, refer to the Microsoft documentation on International Analog TV Tuning.
  
             
             
            
Example
 
             | Visual Basic |  Copy Code | 
|---|
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.avi")
         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
            ' set the video and audio compressors 
            capturectrl.VideoCompressors.Mpeg2.Selected = True
            capturectrl.AudioCompressors.AC3.Selected = True
            ' 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.AVI
                  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 17\Media"
End Class | 
 
| C# |  Copy Code | 
|---|
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.avi");
         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;
            // set the video and audio compressors 
            capturectrl.VideoCompressors.Mpeg2.Selected = true;
            capturectrl.AudioCompressors.AC3.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.AVI;
                  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 17\Media";
} | 
 
  
            
            Remarks
            
Requirements
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7 
 
            
            
See Also