【问题标题】:C# Vlc Player Mouse Double Click EventC# Vlc Player 鼠标双击事件
【发布时间】:2014-07-17 17:52:39
【问题描述】:

我正在开发一个使用 libvlc、c# 开发的播放器。有工作全屏按钮。我尝试将 mousedoubleclick 事件添加到面板(播放视频),它在我们不播放视频时工作;但是当视频开始播放时它不起作用。因此,我在播放器中添加了相同的事件,但仍然无法正常工作。

事件定义:

this.player.MouseDoubleClick += new MouseEventHandler(panel1_MouseDoubleClick);

定义:

private vlc.DotNet.Forms.VlcControl player;

有没有其他方法可以在vlc播放器中添加鼠标双击事件?

【问题讨论】:

    标签: c# mouseevent vlc double-click libvlc


    【解决方案1】:

    Panel1:“panelVideo”包含“Vlc.DotNet.Forms.VlcControl”

    Panel2:“panelDoubleClick”在运行时创建,“vlcControl.Controls.Add(panelDoubleClick);”

    Panel2: 设置 panelDoubleClick.BackColor = Color.Transparent;

    Panel2:为切换全屏面板添加双击事件处理程序 panelDoubleClick.MouseDoubleClick += new MouseEventHandler(panelDoubleClick_MouseDoubleClick);

        Vlc.DotNet.Forms.VlcControl vlcControl;
        Vlc.DotNet.Core.Medias.PathMedia Media2Play;
    
        public void PlayMedia(string fileName)
        {
    
            if (Vlc.DotNet.Core.VlcContext.IsInitialized == false)
                initVLC();
    
            //StopVLC();
    
            //Panel1: "panelVideo" holds "Vlc.DotNet.Forms.VlcControl"
            //Panel2: "panelDoubleClick" created  at runtime and "vlcControl.Controls.Add(panelDoubleClick);" 
            //Panel2: panelDoubleClick.BackColor = Color.Transparent;
            //panelDoubleClick.MouseDoubleClick += panelDoubleClick_MouseDoubleClick;
    
    
            vlcControl = new Vlc.DotNet.Forms.VlcControl();
            vlcControl.CreateControl();
            vlcControl.Dock = DockStyle.Fill;
            this.panelVideo.Controls.Add(vlcControl);//panelVideo is manin container panel.
            //initEvents();//VLC player events
    
    
            Panel panelDoubleClick = new Panel();// this panel requires to catche double click evetns.
            panelDoubleClick.Dock = DockStyle.Fill;
            panelDoubleClick.BackColor = Color.Transparent;
            panelDoubleClick.MouseDoubleClick += new MouseEventHandler(panelDoubleClick_MouseDoubleClick); ;
    
            if (vlcControl != null)
            {
                Media2Play = new Vlc.DotNet.Core.Medias.PathMedia(fileName);
                vlcControl.Media = Media2Play;
                vlcControl.Show();
                vlcControl.Play();
                vlcControl.Controls.Add(panelDoubleClick);
                panelDoubleClick.BringToFront();
            }
    
        }
    
        private void panelDoubleClick_MouseDoubleClick(object sender, MouseEventArgs e)
        {
           MessageBox.Show  ("ToggleFullScreen();");
        }
    
        private void initVLC()
        {
    
            try
            {
                // Set libvlc.dll and libvlccore.dll directory path
                string vlcPath = "";
    
                vlcPath = "E:\\VLC\\VLC_minimal";
    
                if (System.IO.Directory.Exists(vlcPath) == false)
                {
                    vlcPath = Application.StartupPath.Trim('\\') + "\\VLC\\";
                    if (System.IO.Directory.Exists(vlcPath) == false)
                    {
                        if (Environment.Is64BitOperatingSystem)
                        {
                            vlcPath = "C:\\Program Files (x86)\\VideoLAN\\VLC";
                        }
                        else
                        {
                            vlcPath = "C:\\Program Files\\VideoLAN\\VLC";
                        }
                        if (System.IO.Directory.Exists(vlcPath) == false)
                        {
                            MessageBox.Show("VLC cannot be fount on your system.");
                            Application.Exit();
                            return;
                        }
                    }
                }
    
                Vlc.DotNet.Core.VlcContext.LibVlcDllsPath = vlcPath;
    
    
                // CommonStrings.LIBVLC_DLLS_PATH_DEFAULT_VALUE_AMD64;
    
                // Set the vlc plugins directory path
                Vlc.DotNet.Core.VlcContext.LibVlcPluginsPath = Vlc.DotNet.Core.VlcContext.LibVlcDllsPath + "\\pugins";
                //CommonStrings.PLUGINS_PATH_DEFAULT_VALUE_AMD64;
    
                // Ignore the VLC configuration file
                Vlc.DotNet.Core.VlcContext.StartupOptions.IgnoreConfig = true;
    
                // Enable file based logging
                Vlc.DotNet.Core.VlcContext.StartupOptions.LogOptions.LogInFile = false;
    
                // Shows the VLC log console (in addition to the applications window)
                Vlc.DotNet.Core.VlcContext.StartupOptions.LogOptions.ShowLoggerConsole = false;
    
                // Set the log level for the VLC instance
                Vlc.DotNet.Core.VlcContext.StartupOptions.LogOptions.Verbosity = Vlc.DotNet.Core.VlcLogVerbosities.None;
    
                Vlc.DotNet.Core.VlcContext.StartupOptions.ScreenSaverEnabled = false;
                Vlc.DotNet.Core.VlcContext.StartupOptions.AddOption("--no-video-title");
                //hide played media filename on startingto play media.
    
                // Initialize the VlcContext
                Vlc.DotNet.Core.VlcContext.Initialize();
    
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-09
      • 2012-01-14
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2012-12-24
      相关资源
      最近更新 更多