0

我正在尝试实现对提供 RTSP 视频流和远程控制协议的设备的远程控制。我从如何在网页中显示 RTSP 视频流中的示例代码开始?

<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
     codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
     width="640" height="480" id="vlc" events="True">
   <param name="Src" value="rtsp://cameraipaddress" />
   <param name="ShowDisplay" value="True" />
   <param name="AutoLoop" value="False" />
   <param name="AutoPlay" value="True" />
   <embed id="vlcEmb"  type="application/x-google-vlc-plugin" version="VideoLAN.VLCPlugin.2" autoplay="yes" loop="no" width="640" height="480"
     target="rtsp://cameraipaddress" ></embed>
</OBJECT>

然后添加了一段Hammer.js以在我单击页面时显示警报:

var element = document.getElementById('test_el');
    var hammertime = Hammer(element).on("tap", function(event) {
        alert('hello!');
    });

我发现当我单击 VLC ActiveX 控件的一侧时会出现警报,但不是在它上面。我猜 ActiveX 控件在 Hammer.js 看到它之前消耗了触摸事件?有什么方法可以关闭 VLC 中的 UI(暂停/播放按钮、音量控制等),这样它就不会消耗触摸或让 Hammer.js 也能看到触摸?还是我完全错了,这是另一个问题?

4

1 回答 1

0

事实证明 VLC 示例有点过时了 - 请参阅WebPlugin文档。我可以将 HTML 更新为:

<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org"
     windowless="True"
     width="640"
     height="480"
     src="rtsp://192.168.0.10/screenmirror"
     id="vlc">
</embed>

关键是“无窗口”标志,定义为:

Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: false

一旦我应用它,VLC UI 就会消失,Hammer.js 似乎工作正常,当我单击视频时会出现我的警报。

于 2013-09-15T06:47:22.687 回答