WPF的ActiveX VLC插件不会静音

时间:2013-12-17 19:15:59

标签: c# wpf activex vlc

我正在使用简单的打开文件对话框打开视频文件并通过VLC播放。一切都很好,但我无法让音量为我的生活静音。

    System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog();
    ofd.ShowDialog();
    if (ofd.FileName != "")
    {

       vlc.addTarget("file:///" + ofd.FileName, null,AXVLC.VLCPlaylistMode.VLCPlayListReplaceAndGo, 0);

       vlc.play();
       vlc.AutoLoop = true;
       vlc.Volume = 0;
       vlc.toggleMute();


}

我已经尝试将音量设置为0并且没有运气的toggleMute功能。我也试过在playEvent中做静音功能,没有运气。任何人都可以对这种情况有所了解吗?

编辑:所以,在调用音量和静音之前,我在一个System.Threading.Thread.Sleep(1000);中投掷了。令我惊讶的是,音量在延迟一秒后静音。有没有人对此有一个“真正的”修复,因为它似乎可能导致问题/在较慢的机器上无法正常工作

2 个答案:

答案 0 :(得分:2)

自VLC 2.0.9以来会出现此问题。 VLC版本2.0.8不需要延迟。 所有版本> 2.0.8都需要延迟... 解决方案是使用版本2.0.8,它工作正常。

答案 1 :(得分:2)

/// <summary>
/// Play a filename
/// </summary>
/// <param name="fileName">filename</param>
public void Play(string fileName)
{
    this.VlcControl.Media = new Vlc.DotNet.Core.Medias.PathMedia(fileName);
    Task.Factory.StartNew(this.Mute);
}

/// <summary>
/// Mute audio
/// </summary>
private void Mute()
{            
    this.VlcControl.AudioProperties.IsMute = true;
    if (!this.VlcControl.AudioProperties.IsMute)
    {
        // Retry mute
        Task.Factory.StartNew(this.Mute);
    }
 }