Javascript条件无法进行音频检查

时间:2017-08-23 23:27:24

标签: javascript html5 video

所以我一直盯着这个问题。以下代码查看视频,并确定其实际播放的声音,还是只是静音。如果它是静音的,我想循环它,所以它基本上像GIF一样。

控制台准确记录声音检查。我一直在检查。

但无论如何都会运行下一段代码(将循环应用于视频)。它用声音循环播放视频,我不知道为什么。

 <script type="text/javascript">
document.getElementById("my-video_html5_api").addEventListener("loadeddata", function() {
  if (typeof this.webkitAudioDecodedByteCount !== "undefined") {
    // non-zero if video has audio track
    if (this.webkitAudioDecodedByteCount > 0)
      console.log("video has audio");

    else
      console.log("video doesn't have audio");
      var vid = document.getElementById("my-video_html5_api");
      vid.loop = true;
  }
  else if (typeof this.mozHasAudio !== "undefined") {
    // true if video has audio track
    if (this.mozHasAudio)
      console.log("video has audio");
    else
      console.log("video doesn't have audio");
      var vid = document.getElementById("my-video_html5_api");
      vid.loop = true;
  }
  else
    console.log("can't tell if video has audio");
});
</script>

任何帮助?

1 个答案:

答案 0 :(得分:1)

修复你的牙箍。每个“if”和“else”结果都需要用大括号括起来。

从技术上讲,单线块没有,但这是一个很好的做法。必须包装多个行块,否则它们将进行评估。特别是,我正在查看几个没有任何括号的/**行!