在实现播放器的时候,我们需要捕获键盘、鼠标事件进行视频快进、快退,或者双击全屏/退出全屏窗口、鼠标右键弹出菜单栏。默认情况下,在使用libVLC库的时候,我们无法捕获这些事件,因为我们将Qt的视频窗口传递给了libVLC。
libvlc_media_player_set_hwnd(vlc_mediaPlayer, (void *)ui.widgetShow->winId());
但是libVLC提供了两个接口,使得忽略了对鼠标键盘事件的处理,让事件返回到原始Qt的widget上。
libvlc_video_set_mouse_input(vlc_mediaPlayer, 0);
libvlc_video_set_key_input(vlc_mediaPlayer, 0);
好了,知道了如何操作了之后,下面开始实现代码。
首先打开文件的时候禁用鼠标、键盘事件,并且设置视频窗口为Qt的Widget控件,libvlc_media_player_set_hwnd。
void showWidget::slotOpenFile()
{
/*选择文件*/
QString filename = QFileDialog::getOpenFileName(this, "选择打开的文件", "