#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;
}
Я надеюсь вам помочь.