首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动设备上的Video.js + google IMA:'tap‘事件导致错误

移动设备上的Video.js + google IMA:'tap‘事件导致错误
EN

Stack Overflow用户
提问于 2016-05-11 17:26:15
回答 1查看 1.5K关注 0票数 0

我正在尝试使用video.js和谷歌的IMA插件[videojs-ima][1]来实现视频广告的显示

example code中包含以下部分:

代码语言:javascript
复制
// 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时,我得到以下错误:

代码语言:javascript
复制
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播放器的一些功能不起作用,例如,我不能通过点击视频区域来暂停视频(我需要点击暂停按钮,这在移动设备上很难)。

我如何让这个“点击”事件在移动设备上正常工作?

EN

回答 1

Stack Overflow用户

发布于 2016-07-04 23:07:48

我已经在videojs-ima github上更新了这个问题。也许我的解决方案对你来说是可以接受的。

主要的问题是,当你点击“播放”按钮时,由google-ima videojs插件创建的div "ima-ad-container“位于videojs播放器的上方。

所以我对iPhone设备进行了检测:

jQuery

代码语言:javascript
复制
if (navigator.userAgent.match(/iPhone/i)){
    $('#ima-ad-container').hide().css({'left':'-10000px','top':'-10000px'});
}

Javascript

代码语言: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插件被初始化,你就必须执行这段代码,即:

代码语言:javascript
复制
videojs('player').on('adsready', {
   });

我希望它能以某种方式帮助您,它对我有效:)在iPhone 3G、iPhone 3GS、iPhone 4s、iPhone 5和iPhone 6上测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37158342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档