C#使用LibVLC实现播放遇到无法全屏及鼠标键盘事件问题解决

在开发视频播放软件时,遇到VLC SDK拦截鼠标键盘事件导致无法实现全屏等功能。通过libvlc接口libvlc_video_set_mouse_input和libvlc_video_set_key_input,在播放后设置为0,可以禁止VLC拦截这些事件,从而让picturebox正常响应。
摘要由CSDN通过智能技术生成

    最近开发视频播放软件使用VLC实现流媒体播放,在使用libVLC自己进行集成播放控件时发现,播放窗口picturebox不响应鼠标键盘事件,无法进行双击或鼠标全屏播放功能的实现。原因是事件被vlc sdk拦截了。在网上找了多个方法都没有解决,最终通过查看vlc.net(之所以没有直接使用vlc.net,是因为它没有自己开发的稳定,原因还不清楚)如何实现,知道了实现方法,如下: 

libvlc禁用鼠标键盘事件获取的接口: 

/// true on->1 false off->0
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]  [SuppressUnmanagedCodeSecurity]
public static extern void libvlc_video_set_mouse_input(IntPtr libvlc_mediaplayer, uint status);

[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[SuppressUnmanagedCodeSecurity]
 public static extern void libvlc_video_set_key_input(IntPtr libvlc_media_player, uint b);

在播放后调用以上两个接口,就可禁用VLC拦截鼠标键盘消息了:

。。。。

LibVlcAPI.libvlc_media_player_set_hwnd(m_pmedia_player, (int)hPlayWnd);            LibVlcAPI.libvlc_media_player_play(m_pmedia_player);               

LibVlcAPI.libvlc_video_set_mouse_input(m_pmedia_player, 0u);                        LibVlcAPI.libvlc_video_set_key_input(m_pmedia_player, 0u);

。。。。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值