Luc*_*oss 5 c# vlc winforms libvlc
我从Github下载了Vlc.DotNet项目,并一直在为其Sample Samples应用程序添加更多功能。一切正常,除了在事情上:我注意到,每次我启动应用程序并播放音频时,即使将其设置为较低的值,音频听起来也好像是其音量为100%(或附近)。
在播放音频之前,我曾尝试设置音量,但是没有用。如果调试代码,我会看到音量始终设置为-1。
例如,如果我执行以下代码行,则将音量设置为40后,在调试时,音量仍为-1:
myVlcControl.Play(new FileInfo(FileName));
myVlcControl.Audio.Volume = 40;
Run Code Online (Sandbox Code Playgroud)
更改上面各行的顺序也不起作用。
有趣的是,当音频已经在播放并且我更改了音量时,它已成功更改为NumericUpDown上的选择值。下面的代码是发生这种情况的事件:
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
myVlcControl.Audio.Volume = (int)numericUpDown1.Value;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试解决此问题两天了。不幸的是,我的编码技能甚至没有使这个项目的幕后人员离开。我已经在Github的“问题”页面上发布了此问题,但是由于自11月以来仍然有一些问题没有得到答复,因此我决定尝试使用StackOverflow。希望这里有人使用Vlc.DotNet并为我的问题提供了解决方案。
话虽如此:
谢谢!
[2016年1月8日,格林尼治标准时间2上午11:50编辑]
Github上的higankanshi用户回答了我以下问题:
我发现了问题。您应该使用LibVlc 2.2.0(或更高版本)。Vlc.DotNet使用的是LibVlc 2.1.5
然后,我执行了一些测试,并得出以下结论:
你是对的。使用LibVlc 2.2.0,我可以在播放之前设置音量。
不幸的是,由于某些原因,在播放音频之前设置音量仅在首次打开应用程序时起作用。停止音频,更改音量并再次播放之后,音量不再更改-仅在播放时更改。
以下是产生结果的步骤:
我正在Vlc.DotNet.Forms.Samples-CLR 4-.Net 4.5项目上进行测试。我对该项目所做的更改是:
我的代码如下:
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
myVlcControl.Audio.Volume = (int)numericUpDown1.Value;
}
private void Play()
{
myVlcControl.Audio.Volume = (int)numericUpDown1.Value;
myVlcControl.Play(new FileInfo(FileName));
}
private void OnButtonPlayClicked(object sender, EventArgs e)
{
Play();
}
private void OnButtonStopClicked(object sender, EventArgs e)
{
myVlcControl.Stop();
}
private void OnButtonPauseClicked(object sender, EventArgs e)
{
myVlcControl.Pause();
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我找到了工作解决方案:
int volume { get; set; }
public Constructor(){
InitializeComponent();
myVlcControl.VideoOutChanged += myVlcControl_VideoOutChanged;
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
this.volume = (int)numericUpDown1.Value;
myVlcControl.Audio.Volume = volume;
}
void vlcPlayer_VideoOutChanged(object sender, VlcMediaPlayerVideoOutChangedEventArgs e)
{
myVlcControl.Audio.Volume = volume;
}
Run Code Online (Sandbox Code Playgroud)
这似乎适用于文件和流。
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |