中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

完美解決:Java微信語音amr格式轉mp3格式,兼容Linux/Mac/Windows,支持Maven

2018-12-21    來源:importnew

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

少費話,先上代碼

引入 maven 依賴

 <dependency>
    <groupId>com.github.dadiyang</groupId>
    <artifactId>jave</artifactId>
    <version>1.0.0</version>
 </dependency>

調用 AudioUtils.amrToMp3 方法

三行代碼搞定格式轉換

public void amrToMp3()  {
    File source = new File("target/test-classes/material/testAudio.amr");
    File target = new File("testAudio.mp3");
    it.sauronsoftware.jave.AudioUtils.amrToMp3(source, target);
}

探索過程

最近接到基于微信公眾號開發(fā)的需求,在處理微信消息的時候,發(fā)現語音類型的消息微信推送過來的是 amr 格式的文件,而在網頁 HTML5的audio標簽不支持amr格式,很是麻煩。

于是到處查資料,發(fā)現了 JAVE 這個項目,它封裝了 ffmpeg 的命令,讓開發(fā)者可以通過 Java 轉換文件格式。

不幸的是,這個項目可謂年久失修,存在以下幾個問題

JAVE 項目的問題

  1. 項目老舊沒再維護。官網最近版本是2009年發(fā)布的,其依賴的ffmpeg早已過時,很多情況下用不了。
  2. 轉碼一直報異常 EncoderException: Stream mapping
  3. 沒有發(fā)布maven倉庫,而且 JAVE 本身也不是一個maven項目
  4. 不支持Mac OS

解決

本項目為解決上述問題,根據網上的資料進行整理和修改,我創(chuàng)建了一個 JAVE開源項目 并且發(fā)布到 maven中央倉庫,讓整個解決方案變得更加簡單。

項目特點

  • 這是一個maven項目,而且已發(fā)布到中央倉庫。
  • 項目依賴的 ffmpeg 可執(zhí)行文件經過驗證可以使用(單元測試中提供了一個簡單的檢驗方法)
  • 解決了amr轉mp3出現的 EncoderException: Stream mapping
  • 支持 Linux/Windows/Mac 平臺

JAVE原理

  1. 初始化時判斷當前運行環(huán)境,將bin目錄中對應的 ffmpeg 可執(zhí)行文件拷貝到臨時目錄中
  2. 根據文件類型及配置通過 Runtime.getRuntime().exec(cmd) 執(zhí)行 ffmpeg 對應的轉碼命令

自定義 ffmpeg 路徑

如果程序無法通過拷貝資源文件的方式獲取到 ffmpeg 的可執(zhí)行文件或者內置的 ffmpeg 不支持你所使用的操作系統

你可以通過環(huán)境變量或者在 java 中設置 System.setProperty("ffmpeg.home", "ffmpeg可執(zhí)行文件所在的目錄") 的方式指定你的系統中安裝的可用的 ffmpeg 文件的目錄,如 System.setProperty("ffmpeg.home", "/usr/local/bin/")

項目GitHub地址

  • https://github.com/dadiyang/jave

參考

  • JAVE官網:http://www.sauronsoftware.it/projects/jave/index.php
  • 《解決linux AMR轉MP3出現轉碼成功卻無法播放的問題》:https://hk.saowen.com/a/2ec2a73ec73091967c3ebdb5697832006cb255a7183377b6e8fae1c13f5e54bc

標簽: linux 代碼 開發(fā)者

版權申明:本站文章部分自網絡,如有侵權,請聯系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯系。

上一篇:圖解WebGL和Three.js工作原理

下一篇:從零開始用好Maven:從HelloWorld到日常使用