我有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;
但我发现它们是一样的
1条答案
按热度按时间lh80um4z1#
这似乎是一个已知的bug,在VideoLAN bug tracker上从未报告过
问题是mmdevice音频输出插件只有一个共享的音量值,而不是每个播放器的音量值。
作为一种解决方法,您可以通过将此选项传递给libvlc构造函数来使用不同的音频输出模块
资料来源: