JavaScript 条件不适用于音频检查

标签 javascript html 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>

有什么帮助吗?

最佳答案

固定牙套。每个“if”和“else”结果都需要用花括号括起来。

从技术上讲,单行 block 不会,但这是一个很好的做法。多个行 block 必须被换行,否则它们将被评估。特别是,我正在查看几行不包含在任何大括号中的 vid.loop = true 行!

关于JavaScript 条件不适用于音频检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45850708/

相关文章:

html - 视频填充问题

c - h264 inside AVI、MP4 和 "Raw"h264 流。不同格式的 NAL 单元(或 ffmpeg 错误)

java - 在 Android 上解码 h264 字节流

javascript - 将字体大小限制增加和减少到最大和最小 jQuery

html - 使用 Buzz.js 音频从我停止的最后一个位置开始,而不是从头开始。 (ipad1)

javascript - 如果 AJAX 错误,请取消选中复选框

javascript - 为网页创建弹出(或者是弹出窗口?)窗口

jquery - 视频不是全宽的

javascript - 如何检测元素何时在 jquery 中的页面顶部滚动?

javascript - 为什么 Rx.Observable.of(true) 开始发射