Изменить аудиопоток в VideoLAN DotNet для WPF

#c# #wpf #audio #libvlc

#c# #wpf #Аудио #libvlc

Вопрос:

Мы используем VideoLAN DotNet для WPF для воспроизведения DVD-фильмов в нашем приложении WPF. Некоторые фильмы имеют несколько аудиопотоков. (например, на нескольких языках) Как мы можем выбрать желаемый аудиопоток?
При поиске в Вики VideoLAN я нашел это:

 [Browsable(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public int AudioTrack
        {
            get
            {
                return this.nativeVlc.GetVlcObjectInt(ObjectType.VLC_OBJECT_INPUT, "audio-es", -1);
            }
            set
            {
                this.nativeVlc.SetVlcObjectInt(ObjectType.VLC_OBJECT_INPUT, "audio-es", value);
            }
        }
 

Но я не могу найти то же свойство в проекте, который я использую (Vlc.DotNet)
Итак, как я могу определить, сколько аудиопотоков существует, и выбрать один?

Ответ №1:

Я узнал, как это сделать (примером является MediaPlayer VlcControl ):
мы можем подсчитывать аудиопотоки с помощью mediaPlayer.AudioProperties.TrackCount и выбирать индекс с помощью mediaPlayer.AudioProperties.Track .
Теперь есть какой-нибудь способ получить их описание? (Обычно у них есть имя, например, «Английский»)

Ответ №2:

я использую элемент управления VLC в Windows form и свой код для работы

 private void karaokeToolStripMenuItem_Click(object sender, EventArgs e)
        {
             // MessageBox.Show(axVLCPlugin21.audio.count.ToString(), "audio track");
            if (axVLCPlugin21.audio.track == 1)
            {
                try
                {
                    axVLCPlugin21.audio.track = 2;
                }
                catch (Exception ex)
                {
                    // show Exception here by messageBox or other
                    //if there are exceptions, the file has only one track
                }

            }

                else
                    axVLCPlugin21.audio.track = 1;            
        }  
 

Я надеюсь вам помочь.