【问题标题】:Unmute button for iOS autoplay videoiOS 自动播放视频的取消静音按钮
【发布时间】:2019-09-23 13:28:29
【问题描述】:

我知道要在 iOS 中使用 autoplay 标签,mute 标签也必须用于“安全原因”。我正在使用类似于 autoplay 的东西,即从我的 JavaScript 代码中调用 video.play()。为此,我还必须包含mute 标签。我希望用户能够启用声音。理想情况下,我想从我自己的自定义按钮中获得这个。但是,我似乎无法让它发挥作用。以前有人做过吗?

基本视频 HTML

<video width="100%" id='test' class='vidInit' muted playsinline></video>

从 JS 播放

videoCurrent = document.getElementById('test');
// ...
videoCurrent.play();

取消静音按钮 - 不起作用:(

let unmute = document.createElement('img');
unmute.style = 'background-color: blue; position: absolute; display: block; left: 100px; top: 100px; width: 100px; height: 100px;';
unmute.onclick = function() {
    video.muted = false;
    console.log('UNMUTE');
}
navbar.appendChild(unmute);

【问题讨论】:

  • 是不是因为你用的不是按钮而是图片?
  • 我不这么认为,console.log('UNMUTE'); 似乎被调用了
  • 你在哪里声明了你试图调用 muted = 'false' 的视频变量?

标签: javascript html ios css


【解决方案1】:

引用视频元素的变量称为videoCurrent,但在单击事件处理程序中,您尝试使用一个简单称为video 的变量,该变量未定义。这是一个工作示例,表明当您使用正确的参考时它确实有效。我还将进行静音的线路更改为

videoCurrent.muted = !videoCurrent.muted;

为了能够在此演示中切换静音/取消静音状态。

顺便说一句,在"UNMUTE" 被记录之前,您应该已经在控制台中看到了解释问题的错误消息。

var videoCurrent = document.getElementById('test');
var navbar = document.querySelector('nav');
videoCurrent.play();

let unmute = document.createElement('img');
unmute.style = 'background-color: blue; position: absolute; display: block; left: 100px; top: 100px; width: 100px; height: 100px;';
unmute.onclick = function() {
  videoCurrent.muted = !videoCurrent.muted;
  console.log('UNMUTE');
}
navbar.appendChild(unmute);
<nav></nav>
<video width="100%" id='test' class='vidInit' src='http://clips.vorwaerts-gmbh.de/VfE_html5.mp4' muted playsinline></video>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 2019-07-09
    • 2015-01-17
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    相关资源
    最近更新 更多