javascript - 如何检查多个HTML5视频的音频

标签 javascript html audio video

我正在尝试检查多个视频是否有音频,例如:
https://jsfiddle.net/hrd4a0c3/

但这只会检查一个视频,我希望它能检查多个视频。

document.getElementById("myVideo").addEventListener("loadeddata", function() {
  if (typeof this.webkitAudioDecodedByteCount || this.mozHasAudio || this.audioTracks !== "undefined") {
    if (this.webkitAudioDecodedByteCount > 0 || this.mozHasAudio || this.audioTracks && this.audioTracks.length)
      this.after("has audio");
    else
      this.after("no audio");
  }
});

最佳答案

我将使用class而不是id,因为id应该引用一个元素。

<video class='myVideo' autoplay loop muted>
  <source src="https://vtt.tumblr.com/tumblr_ok41s7Iebh1t4fjz0_480.mp4" type="video/mp4">
</video>

<video class='myVideo' autoplay loop muted>
  <source src="https://vtt.tumblr.com/tumblr_ok44bpZZka1t4fjz0_480.mp4" type="video/mp4">
</video>

然后,您可以像这样使用 getElementsByClassName :
var videos = document.getElementsByClassName("myVideo");

for (i = 0; i < videos.length; i++) {
  videos[i].addEventListener("loadeddata", function() {
    if (typeof this.webkitAudioDecodedByteCount || this.mozHasAudio || this.audioTracks !== "undefined") {
      if (this.webkitAudioDecodedByteCount > 0 || this.mozHasAudio || this.audioTracks && this.audioTracks.length)
        this.after("has audio");
      else
        this.after("no audio");
    }
  });
}

更新了Fiddle

关于javascript - 如何检查多个HTML5视频的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433222/

相关文章:

javascript - 如何在 javascript 标签中管理 css border-top?

javascript - 删除所有图像

html - 如何在另一个元素中分组时并排对齐图像而不留间距

html - 居中对齐标题中的 anchor 元素

image - 如何用静止图像替换视频文件中的视频轨道?

audio - C#避免在按下KeyDown时发出哔哔声?

javascript - 为什么 JSON.parse 在与字符串数组一起使用时有时会返回错误?

Javascript:将参数传递给对象和函数......?

html - 为什么标题 (h1-6) 在 HTML/CSS 中是一个单独的类别(标签)?

java - libgdx 播放声音或音乐 - 最佳实践