html5中有audio这样一个标签,这个标签支持3种格式,分别是wav、mp3、ogg格式,都是音频格式,
而且在不同的浏览器中还有不同的兼容性。
下面是主流的几个浏览器对它的支持性:
那么,问题来了,我们现在是微信上发送的语音文件(格式为amr)需要在浏览器上进行展示,结果由于audio标签并不支持amr格式的语音文件,就导致无法再浏览器上正常显示。
解决方案:
原理:该方案的原理是利用ffmpeg工具的转码功能将amr格式转换为MP3格式
使用方法:使用方需要做如下两个步骤:
1、在classpath下的com/bill99/amr/util下放入上图所示两个文件:ffmpeg.exe和
PthreadGC2.dll;
2、引入jar包amr-to-mp3-translator.jar,web.xml中加入过滤器,
<filter>
<filter-name>Amr2Mp3Filter</filter-name>
<filter-class>com.bill99.amr.filter.Amr2Mp3Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>Amr2Mp3Filter</filter-name>
<url-pattern>*.amr</url-pattern>
</filter-mapping>
说明:附件中amr-test.zip是客户端测试程序,解压后放入tomcat即可进行测试!
具体代码可从我的github上下载:https://github.com/iamzken/amr-to-mp3