libvlc + qwidget在Win64上处理鼠标事件

时间:2015-03-31 09:57:21

标签: mouseevent qwidget libvlc win64

我正在使用Qt并使用libVlc版本2.1.5进行实时视频流。我想在vlc帧上处理鼠标按下事件。但是当我点击vlc时,它无法抛出鼠标事件。 我试过

libvlc_video_set_mouse_input(libvlcMediaPlayer,false);

但它将鼠标隐藏在vlc上。 如果有人知道,请帮助我。

感谢。

2 个答案:

答案 0 :(得分:0)

我在Ubuntu 16下使用了libvlc 2.2.2并设法以下列方式在vlc视频区域上获取鼠标事件(仅提供与该问题相关的代码)。在我的VideoPlayer课程中,我有成员:

.ng-test-false {
    border: 1px solid red;
}

,其中VideoWidget是我的自定义窗口小部件类。在cpp中我设置<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="//code.angularjs.org/1.6.2/angular.js"></script> <div ng-app="myApp"> <div ng-controller="MyCtrl as $ctrl"> <my-Directive ng-class="{'ng-invalid': true, 'ng-test-true': $ctrl.testTrue, 'ng-test-false': $ctrl.testFalse}"/> </div> </div>,创建libvlc_media_player_t* vlcPlayer; VideoWidget* widget; 实例,将其传递给我的用户界面以及何时播放&#34;视频被称为我也将小部件传递给vlc libvlc_video_set_mouse_input(vlcPlayer, false);

我的自定义VideoWidget类如下:

widget

所以我的想法是通过传递给vlc的QWidget捕获鼠标事件。

答案 1 :(得分:0)

您还需要使用libvlc_video_set_key_input函数:

libvlc_video_set_mouse_input(media_player, 0);
libvlc_video_set_key_input(media_player, 0);