1、我们实现一个播放器,当播放视频时,可以使用键盘的方向键控制音量的大小、视频的快退快进,使用鼠标单击视频窗口停止/播放视频、鼠标双击视频窗口全屏再次双击恢复正常播放。然而默认情况下,Libvlc接管了视频窗口,我们无法捕获这些鼠标和键盘事件。
原因时我们将视频窗口传递给了Libvlc:
libvlc_media_player_set_hwnd(m_pVlcMediaPlayer, (void*)(m_widget->winId()));
2、幸运的时我们可以使用Libvlc提供给我们的两个接口函数, 让Libvlc忽略对鼠标和键盘事件的处理,还给我们的视频窗口:
libvlc_video_set_mouse_input()
libvlc_video_set_key_input()
m_pVlcMedia = libvlc_media_new_path(m_pVlcInstance, url);
if(!m_pVlcMedia)
{
error("VLC media is null!");
return;
}
else {
libvlc_media_parse_with_options(m_pVlcMedia, libvlc_media_parse_local, 1000);
}
m_pVlcMediaPlayer = libvlc_media_player_new_from_m