微信傳送amr檔案導致web端無法顯示解決方案

微信傳送amr檔案導致web端無法顯示解決方案

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