如何判断播放HTML5音频是否真的是在制造声音
How to determine if playing HTML5 audio is actually making sound?
对于我正在工作的项目的目的,我想通过JS控制台找出如果
你可以通过输入
找到该元素$$("audio")[0]
我使用了以下代码(改编自我在搜索过程中找到的这个jsfiddle)来显示何时调用不同的事件侦听器:
var audio = $$("audio")[0];
var events = 'abort,canplay,canplaythrough,durationchange,emptied,ended,error,loadeddata,loadedmetadata,loadstart,pause,play,playing,progress,ratechange,seeked,seeking,stalled,suspend,timeupdate,volumechange,waiting'.split(',');
// event handler
var onEvent = function(e) {
console.log(e.type);
};
// add event listener to audio for all events
for (var i = 0, len = events.length; i < len; i++) {
audio.addEventListener(events[i], onEvent, false);
}
然后输入:
播放音频$$("audio")[0].play();
如果我检查$$("audio")[0]。暂停时,它会显示false,但我还没有找到任何属性或事件来指示它是否播放声音。(我不希望它在这里,因为我不认为它有音频数据播放,但如果有一种方法来检查,我可以比较它与音频元素播放声音。)
另外,我试着从隐身标签给自己发了一条消息,没有看到这种情况发生的痕迹。(我假设音频元素用于此。)
感谢帮助
要检查页面上是否播放过HTMLMediaElement
(视频或音频),最好的解决方案是检查其played
属性。
这将返回一个TimeRanges
对象,您也可以使用它来获得播放了多少媒体。
如果它从未被播放过,那么这个TimeRanges
对象的length
属性将被设置为0
:
if(audioElement.played.length){
// This media has already been played
}else{
// Never
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 有没有办法检测用户是否真的远离计算机
- 检查数组位置是否真的未定义
- 对象构造:原型是否真的有必要
- res.writehead是否真的写到我的html页面的头部
- 检测 Javascript 变量是否真的未定义
- AngularJS:判断没有(各种类型的)输入是否为真的最简单方法
- 如何检查这个由空 json 输出导致的空对象是否真的为空
- 我怎么知道谷歌脚本是否真的在运行
- 检查是否设置了cookie以及是否真的启动功能
- 如何判断播放HTML5音频是否真的是在制造声音
- Fullcalendar 2是否与Bootstrap 3和Rails 4不兼容(我真的需要帮助……在这个问题上)
- 当键名具有数值时,JSON.parse()是否真的对属性进行排序?
- Angular 2 -验证一个文件是否真的是一个图像
- 选择.调用是否真的返回 d3 中的选择
- 我真的需要用jQuery检查元素是否存在吗
- 如何判断一个文件是否真的被下载和保存,尽管浏览器预取/缓存
- 在JavaScript中读取数组的' length '属性是否真的是一个昂贵的操作