我正在尝试使用video.js和谷歌的IMA插件[videojs-ima][1]来实现视频广告的显示
在example code中包含以下部分:
// Initialize the ad container when the video player is clicked, but only the
// first time it's clicked.
var startEvent = 'click';
if (navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPad/i) ||
navigator.userAgent.match(/Android/i)) {
startEvent = 'tap';
}但是当在移动设备上将startEvent设置为tap时,我得到以下错误:
Uncaught TypeError: document.createTouch is not a function(anonymous function) @ ima3.js:252Ha @ ima3.js:9zm @ ima3.js:252h.Ld @ ima3.js:253Ze @ ima3.js:68h.dispatchEvent @ ima3.js:66im.w @ ima3.js:243We @ ima3.js:63Se @ ima3.js:64(anonymous function) @ ima3.js:62
ima3.js:252
Uncaught TypeError: Cannot read property 'apply' of undefined当我用startEvent = 'tap'注释掉这行时,我不再得到这些错误,但是video.js播放器的一些功能不起作用,例如,我不能通过点击视频区域来暂停视频(我需要点击暂停按钮,这在移动设备上很难)。
我如何让这个“点击”事件在移动设备上正常工作?
发布于 2016-07-04 23:07:48
我已经在videojs-ima github上更新了这个问题。也许我的解决方案对你来说是可以接受的。
主要的问题是,当你点击“播放”按钮时,由google-ima videojs插件创建的div "ima-ad-container“位于videojs播放器的上方。
所以我对iPhone设备进行了检测:
jQuery
if (navigator.userAgent.match(/iPhone/i)){
$('#ima-ad-container').hide().css({'left':'-10000px','top':'-10000px'});
}Javascript
if (navigator.userAgent.match(/iPhone/i)){
var imaDom = document.getElementById('#ima-ad-container');
imaDom.style.display='none';
imaDom.style.left='-10000px';
imaDom.style.top='-10000px';
}一旦videojs-ima插件被初始化,你就必须执行这段代码,即:
videojs('player').on('adsready', {
});我希望它能以某种方式帮助您,它对我有效:)在iPhone 3G、iPhone 3GS、iPhone 4s、iPhone 5和iPhone 6上测试
https://stackoverflow.com/questions/37158342
复制相似问题