更改音频流在VideoLan DotNet为WPF

本文关键字:DotNet WPF VideoLan 音频流 | 更新日期: 2023-09-27 18:10:42

我们在WPF应用程序中使用VideoLan DotNet来播放DVD电影。一些电影有多个音频流。(例如多种语言)我们如何选择所需的音频流?
在搜索VideoLan的Wiki时,我发现了这个:

[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);
            }
        }

但是我在我使用的项目(vc.dotnet)中找不到相同的属性
那么我如何检测有多少音频流并选择一个呢?

更改音频流在VideoLan DotNet为WPF

我发现如何这样做(mediaPlayer是VlcControl的一个实例):
我们可以用mediaPlayer.AudioProperties.TrackCount来计数音频流,用mediaPlayer.AudioProperties.Track来选择索引。
现在有办法得到他们的描述吗?(他们通常有一个名字,比如"English")

我使用VLC控件在Windows的形式和我的工作代码

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;            
        }  
我希望能帮到你。