C# Vl c Формы проблемы стабилизации объема - PullRequest
0 голосов
/ 01 апреля 2020

Я использую пакет Vl c .Do tNet .Forms в моем проекте. Я открываю одно видео на форме. Все в порядке. Но если я хочу открыть видео снова. Когда я меняю громкость, громкость обоих видео меняется.

Пример моего кода:


     public VlcControl control;
     public void Player(string url,int volume){         
            this.control = new VlcControl();
            var currentAssembly = Assembly.GetEntryAssembly();
            var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
            var libDirectory = new DirectoryInfo(Path.Combine(currentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "win-x64"));
            control.BeginInit();
            control.VlcLibDirectory = libDirectory;
            control.Dock = DockStyle.Fill;
            control.EndInit();
            this.Controls.Add(control);
            control.SetMedia(new Uri(@"" + url + ""));
            control.Audio.Volume=volume;
            control.Play();
            }

Например,

    Player("C:\\test\video1.mp4",50);
    Player("C:\\test\video2.mp4",75);

Первое видео открывается, и объем становится 50. Затем, когда я открываю второе видео, объем обоих видео составляет 75.

Я использую эти пакеты

1 Ответ

0 голосов
/ 06 апреля 2020

Похоже, это известная проблема libvl c 3.x.

Обходной путь - использовать другой аудиовыход. В Vl c .Do tNet вы можете сделать это следующим образом:

control.VlcMediaplayerOptions = new []{ "--aout=directsound" };

До control.EndInit();.

Ссылки:

https://forum.videolan.org/viewtopic.php?t=147229

https://github.com/ZeBobo5/Vlc.DotNet/issues/524

...