javascript - iOS 自动播放视频的取消静音按钮

标签 javascript html ios css

我知道要在 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);

最佳答案

引用视频元素的变量称为 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>

关于javascript - iOS 自动播放视频的取消静音按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063577/

相关文章:

javascript - 在 JavaScript 中将插入的任何日期转换为 ISO 格式而不带时间戳

html - 复杂的 CSS 选择器 - 将 "and"与类选择器一起使用

html - 为什么我的页眉背景图片不起作用?

javascript - Masonry broken(可能是经典)

javascript - NVD3 没有正确格式化日期

javascript - 如何在不拉伸(stretch) three.js 前景的情况下增加视角

javascript - JS 提升如何在函数中工作?

javascript - 小 JS 脚本的背景图像不透明度在 iOS 上不起作用

ios - 如何在滚动 UITableView 时阻止 Cell 突出显示

iphone - 如何检测 UITableViewCell 内的触摸