在VideoLan DotNet中为WPF更改音频流

时间:2014-06-28 11:19:10

标签: c# wpf audio libvlc

我们正在使用VideoLan DotNet for WPF在我们的WPF应用程序中播放DVD电影。有些电影有多个音频流。 (例如,用多种语言)我们如何选择所需的音频流?
在搜索VideoLan's 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);
            }
        }

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

2 个答案:

答案 0 :(得分:0)

我发现了如何操作(mediaPlayer是VlcControl的一个实例):
我们可以使用mediaPlayer.AudioProperties.TrackCount计算音频流,并使用mediaPlayer.AudioProperties.Track选择索引 现在有什么方法可以得到他们的描述吗? (他们通常有一个名字,如"英语")

答案 1 :(得分:0)

我正在使用Windows窗体中的VLC控件和我的工作代码

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

我希望能帮助你。