HTML5 视频自动播放无法正常工作

Posted

技术标签:

【中文标题】HTML5 视频自动播放无法正常工作【英文标题】:HTML5 Video Autoplay not working correctly 【发布时间】:2013-06-02 15:26:15 【问题描述】:

我正在使用此代码:

<video  loop="true" autoplay="true" controls>
<source src="http://www.example.com/CorporateVideo.mp4" type="video/mp4" />
<source src="http://www.example.com/CorporateVideo.ogv" type="video/ogv" />
<source src="http://www.example.com/CorporateVideo.webm" type="video/webm" />
</video>

我希望视频自动播放,但是当页面加载时视频无法播放。看起来这是一个缓冲问题,因为当我将鼠标悬停在视频上(以显示控件)时,视频总是 2 秒,然后停止并且不再继续。

注意:我刚刚再次访问该站点,自动播放似乎可以正常工作,但是当我再次尝试时,同样的问题正在发生,这是缓冲问题吗?我能做些什么来阻止这一切?

【问题讨论】:

【参考方案1】:

尝试autoplay="autoplay" 而不是"true" 值。这是启用自动播放的记录方法。这听起来有点多余,我知道。

【讨论】:

使用这个 sn-p 它的跨浏览器兼容 - 我已经测试了它的完美工作***.com/questions/25848236/…【参考方案2】:

如果视频未静音,Chrome 不允许自动播放。试试这个:

<video  loop="true" autoplay="autoplay" controls muted>
  <source src="http://www.tuscorlloyds.com/CorporateVideo.mp4" type="video/mp4" />
  <source src="http://www.tuscorlloyds.com/CorporateVideo.ogv" type="video/ogv" />
  <source src="http://www.tuscorlloyds.com/CorporateVideo.webm" type="video/webm" />
</video>

【讨论】:

【参考方案3】:

移动浏览器通常会忽略此属性,以防止在用户明确开始下载之前消耗数据。

更新androidios 上较新版本的移动浏览器支持自动播放功能。但只有在视频静音或没有音频通道时才有效

一些附加信息: https://webkit.org/blog/6784/new-video-policies-for-ios/

【讨论】:

那么如何强制手机自动播放? 就像一个简单的属性一样使用它: 我们必须使用 muted 属性,对吗? - 根据手机型号/浏览器,它的工作非常零星(至少对于我的测试而言) 是的,没错,如果视频有音频通道则需要静音属性: 我的发现即使使用音频通道也是“静音”的:curious-electric.com/pens/video【参考方案4】:

工作解决方案2018 年 10 月,用于视频,包括音频通道

 $(document).ready(function() 
     $('video').prop('muted',true).play()
 );

看看我的另一个更深入的答案:https://***.com/a/57723549/3049675

【讨论】:

$('video').attr('data-keepplaying', '') 是不必要的。 muted 属性是重要部分。【参考方案5】:

html 
  padding: 20px 0;
  background-color: #efefef;


body 
  width: 400px;
  padding: 40px;
  margin: 0 auto;
  background: #fff;
  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);


video 
  width: 400px;
  display: block;
<video onloadeddata="this.play();this.muted=false;" poster="https://durian.blender.org/wp-content/themes/durian/images/void.png" playsinline loop muted controls>
    <source src="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4" />
    Your browser does not support the video tag or the file format of this video.
</video>

【讨论】:

【参考方案6】:

如果您的软件不支持 jQuery 或出现任何引用类型错误,您可能需要添加一些脚本。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
//Use above scripts only if the software you are working on doesn't support jQuery.

<script>
      $(document).ready(function() 

//Change the location of your mp3 or any music file. 
        var source = "../Assets/music.mp3";
    
        var audio = new Audio();
        audio.src = source;
        audio.autoplay = true;
      );
    </script>

【讨论】:

请考虑editing 您的答案以添加一些解释和详细信息。虽然它可能会回答问题,但仅添加一些代码并不能帮助 OP 或未来的社区成员理解问题或解决方案。

以上是关于HTML5 视频自动播放无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

YouTube 自动播放无法正常工作

Chrome中的静音自动播放仍然无法正常工作

HTML5 视频无法在 IOS 设备上播放,但在其他任何地方都可以正常播放

视频自动播放不能正常工作 chrome 和 safari?

如何检测是不是支持 HTML5 自动播放属性?

用于数字标牌的 Chrome 中的 HTML5 视频自动播放