首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML5视频不从iOS9 (iPad)开始

HTML5视频不从iOS9 (iPad)开始
EN

Stack Overflow用户
提问于 2017-08-16 13:25:47
回答 1查看 629关注 0票数 1

首先,我知道,在iOS下,网站上的视频只会在用户动作上播放(除非设置了单击事件)。

我有一个HTML5视频元素:

代码语言:javascript
复制
<video muted="muted" loop id="js-b2b-video">
    <source src="my_video.mp4" type="video/mp4">
</video>

然后,在JS中,有一段代码侦听窗口的scroll事件:

代码语言:javascript
复制
$(window).on('scroll', function() {

    var $video = $('#js-b2b-video');

    // Check if the video is in the viewport
    // and if YES, play it:
    $video.get(0).play();

});

上面的代码适用于Windows和macOS -在Chrome、Edge、Firefox和Safari中。但是,在运行在iOS9上的任何浏览器上(例如在iPad 1上)--没有发生任何事情,视频就不会启动。

所以,我试着模拟一下:

代码语言:javascript
复制
 // Listener
 $('#js-b2b-video').on('click', function() {

   $(this).get(0).play();

 });

  // Modified scroll listener
  $(window).on('scroll', function() {

    var $video = $('#js-b2b-video');

    // Check if the video is in the viewport
    // and if YES, play it:
    $video.click();

});

什么都没有。撞墙了。

我需要能够在没有用户交互的情况下在iOS上启动视频。我遗漏了什么?

PS。点击(点击)视频也不会启动它。

EN

回答 1

Stack Overflow用户

发布于 2017-08-16 13:38:35

就像CBroe在他的评论中告诉你的那样,阅读他放置的链接(动机部分):

关于用户手势要求的注意事项:当我们说某个动作必须是“用户手势的结果”时,我们指的是导致对video.play()的调用的video.play必须是由一个处理程序直接产生的,例如,一个接触点、单击、doubleclick或keydown事件。因此,button.addEventListener('click',() => { video.play();})将满足用户手势要求。Video.addEventListener(‘canplay身’,() => { video.play();})不会。

因此,它的基本原则是,您不能使用任何事件或行动,从用户开始播放视频。

则“滚动”事件不能工作^^。

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

https://stackoverflow.com/questions/45714878

复制
相关文章

相似问题

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