首页 文章

WPF的ActiveX VLC插件不会静音

提问于
浏览
1

我正在使用一个简单的打开文件对话框打开视频文件并通过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中做静音功能,没有运气 . 任何人都可以对这种情况有所了解吗?

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

2 回答

  • 2

    自VLC 2.0.9以来,这个问题就出现了 . VLC版本2.0.8 doenst需要延迟 . 所有版本> 2.0.8需要延迟...解决方案是使用版本2.0.8,它工作正常 .

  • 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);
        }
     }
    

相关问题