LEADTOOLS Multimedia (Leadtools.Multimedia assembly) Send comments on this topic. | Back to Introduction | Help Version 17.0.3.22
SubpictureStreamsAvailable Property
See Also 
Leadtools.Multimedia Namespace > DVDControl Class : SubpictureStreamsAvailable Property



Gets the number of available Subpicture streams in the current title.

Syntax

Visual Basic (Declaration) 
Public ReadOnly Property SubpictureStreamsAvailable As Integer
Visual Basic (Usage)Copy Code
Dim instance As DVDControl
Dim value As Integer
 
value = instance.SubpictureStreamsAvailable
C# 
public int SubpictureStreamsAvailable {get;}
C++/CLI 
public:
property int SubpictureStreamsAvailable {
   int get();
}

Property Value

The number of available Subpicture streams.

Example

Visual BasicCopy Code
Public _result As Boolean = False
      Public _form As PlayCtrlForm = New PlayCtrlForm()
      Public _playctrl As PlayCtrl
      Public Sub IsAudioStreamEnabledExample()
         ' reference the play control
         _playctrl = _form.PlayCtrl

         Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "VIDEO_TS\VIDEO_TS.IFO")

         Try
            ' set auto start off
            _playctrl.AutoStart = False

            ' use DVDSource
            _playctrl.UseDVDSource = True

            ' set the input file
            _playctrl.SourceFile = inFile

            ' check the DVD options
            DvdInfoCheck()

            ' play it
            _playctrl.Run()
         Catch e1 As Exception
            _result = False
         End Try

         ' 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 _playctrl.State = PlayState.Running
            Application.DoEvents()
         Loop
      End Sub

      ' check DVD properties and info
      Private Sub DvdInfoCheck()
         Dim bstrVal As String
         Dim val As Integer
         Dim button As Integer = _playctrl.DvdController.CurrentButton

         val = _playctrl.DvdController.GetButtonWidth(button)
         val = _playctrl.DvdController.GetButtonHeight(button)
         val = _playctrl.DvdController.GetButtonLeft(button)
         val = _playctrl.DvdController.GetButtonTop(button)

         val = _playctrl.DvdController.DefaultMenuLanguage
         _playctrl.DvdController.DefaultMenuLanguage = 1033
         val = _playctrl.DvdController.GetNumberOfChapters(0)
         val = _playctrl.DvdController.TotalTitleTime

         Dim tcFlags As DVDTimecodeFlags = _playctrl.DvdController.TitleTimecodeFlags

         val = _playctrl.DvdController.CurrentAngle
         If _playctrl.DvdController.AnglesAvailable > 1 Then
            _playctrl.DvdController.CurrentAngle = 2
         End If

         Dim userOp As DVDValidUserOp = _playctrl.DvdController.CurrentUOPS
         Dim audioLang As Long = _playctrl.DvdController.GetAudioLanguage(0)

         val = _playctrl.DvdController.CurrentAudioStream
         If _playctrl.DvdController.AudioStreamsAvailable > 1 Then
            _playctrl.DvdController.CurrentAudioStream = 2
         End If

         val = _playctrl.DvdController.CurrentTime
         val = _playctrl.DvdController.CurrentVolume
         val = _playctrl.DvdController.VolumesAvailable
         val = _playctrl.DvdController.TitlesAvailable
         Dim enabled As Boolean = _playctrl.DvdController.IsAudioStreamEnabled(0)
         val = _playctrl.DvdController.DefaultAudioLanguage

         _playctrl.DvdController.SelectDefaultAudioLanguage(1033, DVDAudioLangExt.Captions)

         Dim directory As String = _playctrl.DvdController.DVDDirectory
         val = _playctrl.DvdController.CurrentSubpictureStream
         val = _playctrl.DvdController.SubpictureStreamsAvailable
         If (val > 1) Then
            _playctrl.DvdController.CurrentSubpictureStream = 1
         End If
         val = _playctrl.DvdController.DefaultSubpictureLanguage
         _playctrl.DvdController.SelectDefaultSubpictureLanguage(1033, DVDSubpictureLangExt.Caption_Normal)

         val = _playctrl.DvdController.CurrentTitle

         Dim subPicLangExt As DVDSubpictureLangExt = _playctrl.DvdController.DefaultSubpictureLanguageExt

         Dim audioLangExt As DVDAudioLangExt = _playctrl.DvdController.DefaultAudioLanguageExt
         Dim subpicLang As Long = _playctrl.DvdController.GetSubpictureLanguage(0)
         Dim subPicStream As Boolean = _playctrl.DvdController.IsSubpictureStreamEnabled(0)

         val = _playctrl.DvdController.GetDVDTextLanguageLCID(0)
         val = _playctrl.DvdController.DVDTextNumberOfLanguages
         val = _playctrl.DvdController.GetGPRM(0)
         _playctrl.DvdController.SetGPRM(0, 1)

         val = _playctrl.DvdController.GetDVDTextNumberOfStrings(0)
         val = _playctrl.DvdController.ButtonsAvailable
         val = _playctrl.DvdController.PlayerParentalLevel
         val = _playctrl.DvdController.PlayerParentalCountry
         Dim ppCountry As String = String.Format("{0}{1}", CChar(ChrW(val And &HFF)), CChar(ChrW(val >> 8)))

         If ppCountry <> "US" Then
            val = CInt(AscW("U"c))
            val += (CInt(AscW("S"c)) << 8)
            _playctrl.DvdController.SelectParentalCountry(val, "user", "pwd")
         End If
         val = _playctrl.DvdController.GetTitleParentalLevels(-1)
         _playctrl.DvdController.SelectParentalLevel(9, "user", "pwd")

         Dim domain As DVDDomain = _playctrl.DvdController.CurrentDomain
         Dim diskSide As DVDDiscSide = _playctrl.DvdController.CurrentDiscSide

         val = _playctrl.DvdController.CurrentChapter
         Dim textStrType As DVDTextStringType = _playctrl.DvdController.GetDVDTextStringType(0, 0)
         If (Not _playctrl.DvdController.SubpictureOn) Then
            _playctrl.DvdController.SubpictureOn = True
         End If

         val = _playctrl.DvdController.GetSPRM(0)
         bstrVal = _playctrl.DvdController.GetDVDTextString(0, 0)
         bstrVal = _playctrl.DvdController.DVDUniqueID
      End Sub

      ' menu event helpers for DVD navigation and control
      Private Sub mnAcceptParentalLevelChange_Click()
         _playctrl.DvdController.AcceptParentalLevelChange(True)
      End Sub

      Private Sub mnActivateAtPosition_Click()
         _playctrl.DvdController.ActivateAtPosition(10, 10)
      End Sub

      Private Sub mnActivateButton_Click()
         _playctrl.DvdController.ActivateButton()
      End Sub

      Private Sub mnChangeDVDRegion_Click()
         _playctrl.DvdController.ChangeDVDRegion(_form)
      End Sub

      Private Sub mnNotifyParentalLevelChange_Click()
         _playctrl.DvdController.NotifyParentalLevelChange(True)
      End Sub

      Private Sub mnPause_Click()
         _playctrl.DvdController.Pause(True)
      End Sub

      Private Sub mnPlayAtInTitle_Click()
         _playctrl.DvdController.PlayAtTimeInTitle(1, 10000000)
      End Sub

      Private Sub mnPlayAtTime_Click()
         _playctrl.DvdController.PlayAtTime(10000000)
      End Sub

      Private Sub mnPlaybackword_Click()
         _playctrl.DvdController.PlayBackwards(5)
      End Sub

      Private Sub mnPlayChapter_Click()
         _playctrl.DvdController.PlayChapter(1)
      End Sub

      Private Sub mnPlaychapterautostop_Click()
         _playctrl.DvdController.PlayChaptersAutoStop(1, 2, 5)
      End Sub

      Private Sub mnPlaychapterintitle_Click()
         _playctrl.DvdController.PlayChapterInTitle(1, 3)
      End Sub

      Private Sub mnPlayfowrward_Click()
         _playctrl.DvdController.PlayForwards(5)
      End Sub

      Private Sub mnPlayNextChapter_Click()
         _playctrl.DvdController.PlayNextChapter()
      End Sub

      Private Sub mnPlayperiod_Click()
         _playctrl.DvdController.PlayPeriodInTitleAutoStop(1, 30, 120)
      End Sub

      Private Sub mnPlayPrevChapter_Click()
         _playctrl.DvdController.PlayPrevChapter()
      End Sub

      Private Sub mnPlaytitle_Click()
         _playctrl.DvdController.PlayTitle(1)
      End Sub

      Private Sub mnReplayChapter_Click()
         _playctrl.DvdController.ReplayChapter()
      End Sub

      Private Sub mnResume_Click()
         _playctrl.DvdController.Resume()
      End Sub

      Private Sub mnReturnfromsubmenu_Click()
         _playctrl.DvdController.ReturnFromSubmenu()
      End Sub

      Private Sub mnSelectAndActivateButton_Click()
         _playctrl.DvdController.SelectAndActivateButton(1)
      End Sub

      Private Sub mnSelectAtPosition_Click()
         _playctrl.DvdController.SelectAtPosition(10, 10)
      End Sub

      Private Sub mnSelectButton_Click()
         _playctrl.DvdController.SelectButton(1)
      End Sub

      Private Sub mnSelectRelativeButton_Click()
         _playctrl.DvdController.SelectRelativeButton(DVDRelativeButton.Right)
      End Sub

      Private Sub mnSetDVDDirectory_Click()
         _playctrl.DvdController.DVDDirectory = "e:\video_ts"
      End Sub

      Private Sub mnShowMenu_Click()
         _playctrl.DvdController.ShowMenu(DVDMenuId.Root)
      End Sub

      Private Sub mnStillOff_Click()
         _playctrl.DvdController.StillOff()
      End Sub

      Private Sub mnStop_Click()
         _playctrl.DvdController.Stop()
      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 PlayCtrlForm _form = new PlayCtrlForm();
      public PlayCtrl _playctrl;
      public void IsAudioStreamEnabledExample()
      {
         // reference the play control
         _playctrl = _form.PlayCtrl;

         string inFile =Path.Combine(LEAD_VARS.MediaDir,@"VIDEO_TS\VIDEO_TS.IFO");

         try
         {
            // set auto start off
            _playctrl.AutoStart = false;

            // use DVDSource
            _playctrl.UseDVDSource = true;

            // set the input file
            _playctrl.SourceFile = inFile;

            // check the DVD options
            DvdInfoCheck();

            // play it
            _playctrl.Run();
         }
         catch (Exception)
         {
            _result = false;
         }

         // 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 (_playctrl.State == PlayState.Running)
            Application.DoEvents();
      }

      // check DVD properties and info
      private void DvdInfoCheck()
      {
         string bstrVal;
         int val;
         int button = _playctrl.DvdController.CurrentButton;

         val = _playctrl.DvdController.GetButtonWidth(button);
         val = _playctrl.DvdController.GetButtonHeight(button);
         val = _playctrl.DvdController.GetButtonLeft(button);
         val = _playctrl.DvdController.GetButtonTop(button);

         val = _playctrl.DvdController.DefaultMenuLanguage;
         _playctrl.DvdController.DefaultMenuLanguage = 1033;
         val = _playctrl.DvdController.GetNumberOfChapters(0);
         val = _playctrl.DvdController.TotalTitleTime;

         DVDTimecodeFlags tcFlags = _playctrl.DvdController.TitleTimecodeFlags;

         val = _playctrl.DvdController.CurrentAngle;
         if (_playctrl.DvdController.AnglesAvailable > 1)
            _playctrl.DvdController.CurrentAngle = 2;

         DVDValidUserOp userOp = _playctrl.DvdController.CurrentUOPS;
         long audioLang = _playctrl.DvdController.GetAudioLanguage(0);

         val = _playctrl.DvdController.CurrentAudioStream;
         if (_playctrl.DvdController.AudioStreamsAvailable > 1)
            _playctrl.DvdController.CurrentAudioStream = 2;

         val = _playctrl.DvdController.CurrentTime;
         val = _playctrl.DvdController.CurrentVolume;
         val = _playctrl.DvdController.VolumesAvailable;
         val = _playctrl.DvdController.TitlesAvailable;
         bool enabled = _playctrl.DvdController.IsAudioStreamEnabled(0);
         val = _playctrl.DvdController.DefaultAudioLanguage;

         _playctrl.DvdController.SelectDefaultAudioLanguage(1033, DVDAudioLangExt.Captions);

         string directory = _playctrl.DvdController.DVDDirectory;
         val = _playctrl.DvdController.CurrentSubpictureStream;
         val = _playctrl.DvdController.SubpictureStreamsAvailable;
         if ((val > 1))
         {
            _playctrl.DvdController.CurrentSubpictureStream = 1;
         }
         val = _playctrl.DvdController.DefaultSubpictureLanguage;
         _playctrl.DvdController.SelectDefaultSubpictureLanguage(1033, DVDSubpictureLangExt.Caption_Normal);

         val = _playctrl.DvdController.CurrentTitle;

         DVDSubpictureLangExt subPicLangExt = _playctrl.DvdController.DefaultSubpictureLanguageExt;

         DVDAudioLangExt audioLangExt = _playctrl.DvdController.DefaultAudioLanguageExt;
         long subpicLang = _playctrl.DvdController.GetSubpictureLanguage(0);
         bool subPicStream = _playctrl.DvdController.IsSubpictureStreamEnabled(0);

         val = _playctrl.DvdController.GetDVDTextLanguageLCID(0);
         val = _playctrl.DvdController.DVDTextNumberOfLanguages;
         val = _playctrl.DvdController.GetGPRM(0);
         _playctrl.DvdController.SetGPRM(0, 1);

         val = _playctrl.DvdController.GetDVDTextNumberOfStrings(0);
         val = _playctrl.DvdController.ButtonsAvailable;
         val = _playctrl.DvdController.PlayerParentalLevel;
         val = _playctrl.DvdController.PlayerParentalCountry;
         string ppCountry = string.Format("{0}{1}", (char)(val & 0xFF), (char)(val >> 8));

         if (ppCountry != "US")
         {
            val = (int)'U';
            val += ((int)'S' << 8);
            _playctrl.DvdController.SelectParentalCountry(val, "user", "pwd");
         }
         val = _playctrl.DvdController.GetTitleParentalLevels(-1);
         _playctrl.DvdController.SelectParentalLevel(9, "user", "pwd");

         DVDDomain domain = _playctrl.DvdController.CurrentDomain;
         DVDDiscSide diskSide = _playctrl.DvdController.CurrentDiscSide;

         val = _playctrl.DvdController.CurrentChapter;
         DVDTextStringType textStrType = _playctrl.DvdController.GetDVDTextStringType(0, 0);
         if (!_playctrl.DvdController.SubpictureOn)
            _playctrl.DvdController.SubpictureOn = true;

         val = _playctrl.DvdController.GetSPRM(0);
         bstrVal = _playctrl.DvdController.GetDVDTextString(0, 0);
         bstrVal = _playctrl.DvdController.DVDUniqueID;
      }

      // menu event helpers for DVD navigation and control
      private void mnAcceptParentalLevelChange_Click()
      {
         _playctrl.DvdController.AcceptParentalLevelChange(true);
      }

      private void mnActivateAtPosition_Click()
      {
         _playctrl.DvdController.ActivateAtPosition(10, 10);
      }

      private void mnActivateButton_Click()
      {
         _playctrl.DvdController.ActivateButton();
      }

      private void mnChangeDVDRegion_Click()
      {
         _playctrl.DvdController.ChangeDVDRegion(_form);
      }

      private void mnNotifyParentalLevelChange_Click()
      {
         _playctrl.DvdController.NotifyParentalLevelChange(true);
      }

      private void mnPause_Click()
      {
         _playctrl.DvdController.Pause(true);
      }

      private void mnPlayAtInTitle_Click()
      {
         _playctrl.DvdController.PlayAtTimeInTitle(1, 10000000);
      }

      private void mnPlayAtTime_Click()
      {
         _playctrl.DvdController.PlayAtTime(10000000);
      }

      private void mnPlaybackword_Click()
      {
         _playctrl.DvdController.PlayBackwards(5);
      }

      private void mnPlayChapter_Click()
      {
         _playctrl.DvdController.PlayChapter(1);
      }

      private void mnPlaychapterautostop_Click()
      {
         _playctrl.DvdController.PlayChaptersAutoStop(1, 2, 5);
      }

      private void mnPlaychapterintitle_Click()
      {
         _playctrl.DvdController.PlayChapterInTitle(1, 3);
      }

      private void mnPlayfowrward_Click()
      {
         _playctrl.DvdController.PlayForwards(5);
      }

      private void mnPlayNextChapter_Click()
      {
         _playctrl.DvdController.PlayNextChapter();
      }

      private void mnPlayperiod_Click()
      {
         _playctrl.DvdController.PlayPeriodInTitleAutoStop(1, 30, 120);
      }

      private void mnPlayPrevChapter_Click()
      {
         _playctrl.DvdController.PlayPrevChapter();
      }

      private void mnPlaytitle_Click()
      {
         _playctrl.DvdController.PlayTitle(1);
      }

      private void mnReplayChapter_Click()
      {
         _playctrl.DvdController.ReplayChapter();
      }

      private void mnResume_Click()
      {
         _playctrl.DvdController.Resume();
      }

      private void mnReturnfromsubmenu_Click()
      {
         _playctrl.DvdController.ReturnFromSubmenu();
      }

      private void mnSelectAndActivateButton_Click()
      {
         _playctrl.DvdController.SelectAndActivateButton(1);
      }

      private void mnSelectAtPosition_Click()
      {
         _playctrl.DvdController.SelectAtPosition(10, 10);
      }

      private void mnSelectButton_Click()
      {
         _playctrl.DvdController.SelectButton(1);
      }

      private void mnSelectRelativeButton_Click()
      {
         _playctrl.DvdController.SelectRelativeButton(DVDRelativeButton.Right);
      }

      private void mnSetDVDDirectory_Click()
      {
         _playctrl.DvdController.DVDDirectory = @"e:\video_ts";
      }

      private void mnShowMenu_Click()
      {
         _playctrl.DvdController.ShowMenu(DVDMenuId.Root);
      }

      private void mnStillOff_Click()
      {
         _playctrl.DvdController.StillOff();
      }

      private void mnStop_Click()
      {
         _playctrl.DvdController.Stop();
      }

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

Remarks

This property is updated automatically. The CurrentSubpictureStream property contains the number of the current Subpicture stream.

For more detailed information, refer to the Microsoft documentation for IDvdInfo2.GetCurrentSubpicture.

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