HTML5音频浏览器无法解码使用IMA ADPCM编码的wav文件

时间:2016-04-26 13:36:59

标签: google-chrome firefox html5-audio pcm adpcm

首先,我道歉,因为我对使用音频非常陌生。

我目前使用的网页应用程序,使用asp.net/vb.net设计,允许用户使用Nanogong小程序(http://nanogong.ust.hk/doc_faq.html)录制和播放音频。我们正在转向HTML5音频,因为大多数浏览器已经删除了对NPAPI插件的支持(除了Firefox,直到今年年底)。

Nanogong使用4位IMA ADPCM来编码wav文件。我能够使用sox将Nanogong wav文件转换为16位PCM,然后使用该wav文件使用oggenc2和使用lame的mp3版本创建ogg版本。我们需要Firefox和Chrome的ogg文件以及Safari的mp3。

我想学习的是为什么浏览器似乎无法播放4位IMA ADPCM格式?他们只能在8位或16位播放PCM格式吗?在Firefox中,firebug表示IMA ADPCM wav文件无法解码; Chrome和Opera在开发者控制台中没有提及任何内容,但我猜它与Firefox相同,因为该文件不会在这些浏览器中播放。

我尝试过在网上搜索,但似乎并不是关于HTML5音频的全部内容,或者大部分内容似乎都是较旧的信息。我还看到更多关于从PCM转换为ADPCM的文章。

非常感谢任何指导或资源。谢谢!

1 个答案:

答案 0 :(得分:3)

浏览器供应商不需要支持任何特定的音频格式。存在诸如许可之类的问题,尽管在这种情况下可能不那么相关,这使得供应商仅支持最基本的(例如未压缩的PCM)和通用格式(MP3,OGG等),并且在某些情况下将依赖于底层用于解码音频(或视频)的系统。代码库相对于增益的大小可能是另一个因素。

4位IMA ADPCM将属于“不太常见”的类别,这可能是为什么在浏览器中找不到支持的原因。

通过使用Audio API(消除IE)和二进制解析/解码手动支持格式,可以解决这个问题。我这样做是 audio-reader-js 库,但目前我不支持IMA编码数据。它也可以作为基础来实现对此的支持。