javascript – HTML5视频,如何在没有音轨时检测?

我正在制作一个Chrome应用程序,我想为视频播放提供自定义控件,但我在使用静音按钮时遇到了一些困难.将在应用程序中播放的大多数视频都是静音的,因此我希望能够在没有音频轨道的情况下禁用按钮,就像Chrome使用认控件一样.

尝试使用音量值,但即使没有音轨,它也会返回“1”.检查视频是否静音也不起作用.

这是一个snippet.

有什么建议?

解决方法

在某些时候,浏览器可能会开始实现 audioTracks property.现在,您可以将webkitAudioDecodedByteCount用于webkit,将mozHasAudio用于firefox.
document.getElementById("video").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");
  }
  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");
  }
  else
    console.log("can't tell if video has audio");
});

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...