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

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

2018-12-21    來源:importnew

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

少費(fèi)話,先上代碼

引入 maven 依賴

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

調(diào)用 AudioUtils.amrToMp3 方法

三行代碼搞定格式轉(zhuǎn)換

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);
}

探索過程

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

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

不幸的是,這個(gè)項(xiàng)目可謂年久失修,存在以下幾個(gè)問題

JAVE 項(xiàng)目的問題

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

解決

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

項(xiàng)目特點(diǎn)

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

JAVE原理

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

自定義 ffmpeg 路徑

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

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

項(xiàng)目GitHub地址

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

參考

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

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

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

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

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