Error processing SSI file
LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

Show in webframe

VideoSubChannel Property






Gets the current video sub-channel.
Syntax
public int VideoSubChannel {get;}
'Declaration
 
Public ReadOnly Property VideoSubChannel As Integer
'Usage
 
Dim instance As TVTuner
Dim value As Integer
 
value = instance.VideoSubChannel
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.
Remarks
Gets the current video sub-channel. This property is valid only for ATSC digital TV broadcasts.
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 19\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 19\Media";
}
Requirements

Target Platforms

See Also

Reference

TVTuner Class
TVTuner Members

Error processing SSI file
Leadtools.MediaFoundation requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features