我在我的项目中使用Vlc.DotNet.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。
我使用这些包
这似乎是libvlc 3.x的已知问题。
解决方法是使用其他音频输出。在Vlc.DotNet中,您可以这样操作:
control.VlcMediaplayerOptions = new []{ "--aout=directsound" };
control.EndInit();
之前。
参考: