javascript - 如何暂停 HTML 音频 IF div is display: none?
问题描述
我在标题中有一个音频文件:
<audio controls autoplay>
<source src="###" type="audio/ogg" />
<source src="###" type="audio/mpeg" />
</audio>
这是在桌面和平板电脑可见的 DIV 中,但在移动设备上隐藏。显然,即使我将它设置为不显示,并且无论播放器不可见,该 div 也会在移动设备上播放音频。如何确保在隐藏 div 时音频不会开始播放,并且在相同 div 显示的桌面上,音频会继续播放?
解决方案
在隐藏 div 时调用 pause 函数应该可以解决问题。
var wrapper = document.querySelector('#yourdiv');
var styles = window.getComputedStyle(wrapper);
if(styles.getPropertyValue('visibility') === 'hidden') {
console.log('pausing');
wrapper.querySelector('audio').pause();
}
#yourdiv {
visibility: hidden;
}
<div id='yourdiv'>
hidden
<audio></audio>
</div>
推荐阅读
- javascript - JavaScript 奇怪的箭头函数
- docker - 环境变量 vue js、azure kubernetes 服务、docker 容器
- javascript - 无法将外部 javascript 添加到 vuejs 页面
- php - 如何在 php 的 pdo prepare 方法中编写常见的插入查询
- multithreading - 如何在 Python 3 中使用 Scheduler 类实现多线程?
- php - 在 Magento 2 中获取参数并转换为字符串
- javascript - 如何从json显示到html的超链接
- c++11 - 如何在 c++ glog 中禁用堆栈跟踪?
- c# - C#将串口数据接收到的事件处理程序运行到另一种形式
- kotlin - 对 Kotlin 中高阶函数的参数感到困惑