Hammer.js over ActiveX

时间:2013-09-15 02:08:04

标签: javascript activex vlc rtsp hammer.js

我正在尝试实现对提供RTSP视频流和远程控制协议的设备的远程控制。我开始使用How can I display an RTSP video stream in a web page?中的示例代码:

<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控件的一侧时出现警报,但是没有。我猜是在Hammer.js看到它之前,ActiveX控件正在消耗触摸事件?有没有办法关闭VLC中的UI(暂停/播放按钮,音量控制等),所以它不消耗触摸或让Hammer.js看到触摸?或者我完全错了,这是另一个问题?

1 个答案:

答案 0 :(得分: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似乎工作正常,当我点击视频时会出现警报。