我正在尝试实现对提供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看到触摸?或者我完全错了,这是另一个问题?
答案 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似乎工作正常,当我点击视频时会出现警报。