Chrome 64更新 - 静音标记不再适用于<video>

时间:2018-02-05 18:59:56

标签: javascript angularjs google-chrome

https://jsfiddle.net/kaldenfi/rpmk93wm/3/

<div ng-app="myApp" ng-controller="testCtrl">
   <section ng-if="url">
     <video id="player1" playsinline autoplay loop muted volume="0.0">
       <source ng-src="{{url | trusturl}}" type="video/mp4"> Your browser does not support the video tag.
     </video>
   </section>
</div> 

更新为chrome 64后,这不再使我的视频静音。如果我将视频带到ng-if和硬编码之外,那么它的工作原理应该是

任何解决方案?

2 个答案:

答案 0 :(得分:0)

好的,找到了一个临时解决方案,如果我将ng-if移动到@Output标签,它会将其正确静音。

Chrome 64必须在页面首次加载时正在寻找任何视频标签,所以如果你的视频标签没有加载,它就不会运行静音标签

答案 1 :(得分:0)

我在Ember应用程序中遇到了同样的问题。

我有两个解决方案:

  1. <video>标记移至index.html,就像您类似地执行
  2. 一样
  3. 创建一个可以在initwindow.onload挂钩上调用的函数 mutePlayer1VideoHack() { const player1Video = document.getElementById('player1'); player1Video.setAttribute('muted', true); }
  4. 我在#2中添加了Hack的函数名称,如果这是一个真正的Chrome 64错误,将会修复。对于我的案例,我将使用解决方案#1