winforms 当WPF中有多个VlcControl时,如何调整特定VlControl音量?

5tmbdcev  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(293)

我有4个VlcControls,我使用WindowsFormsHost将它们托管在我的WPF页面中。VlcControls用于播放视频捕获卡输入内容。当我像下面这样调整其中一个的音量时,所有4个控件的音量一起变大/变小。你们中有人知道如何只调整一个VlcControl的音量而不是4个一起吗?

// Set options
string[] options = new string[]
{
   $":dshow-vdev={videoDeviceName}",
   $":dshow-adev={audioDeviceName}",
   ":dshow-size=1920x1080",
   ":dshow-aspect-ratio=16\\:9",
   ":dshow-fps=60",
   ":live-caching=0",
   ":width=960",
   ":height=540",
   ":transform-type=180",
};

// Start to Play
vlcControls[1].Play("dshow://", options);

// Adjust the volume
private void ChangeVolumn(object para2)
{
    var volume = (double)para2;
    var player = vlcControls[1];
    player.Audio.Volume = (int)volume;
}

我试过:

player.MediaPlayer.Audio.Volume = (int)volume;

但我发现它们是一样的

lh80um4z

lh80um4z1#

这似乎是一个已知的bug,在VideoLAN bug tracker上从未报告过
问题是mmdevice音频输出插件只有一个共享的音量值,而不是每个播放器的音量值。
作为一种解决方法,您可以通过将此选项传递给libvlc构造函数来使用不同的音频输出模块

--aout=directsound

资料来源:

相关问题