AAC(進階音訊編碼, Advanced Audio Coding)被許多人認為是目前音訊有損壓縮品質最好的格式。Android SDK已有內建AAC的編碼與解碼器,如果不想要用Android提供的AAC編碼器的話,也可以使用FAAC來達成。



編譯FAAC For Android

編譯環境:Linux Mint 17 MATE

取得FAAC

FAAC的原始碼可以直接在FAAC的SourceForge上取得:

加入JNI支援至Android專案

在編譯FAAC For Android時,會使用到JNI,所以要讓Android專案能支援JNI。如果您還不知道怎麼樣加入JNI至Android專案中,可以參考這篇文章:

將FAAC原始碼目錄放置於Android專案下

把剛才下載下來的FAAC原始碼目錄放置在Android的專案下,為了要讓.mk設定檔能直接套用,需確定目錄名稱為「faac」。

加入Android.mk和Application.mk至JNI目錄

在此提供筆者編譯FAAC時所使用的Android.mk和Application.mk配置檔案。下載網址:

使用ndk-build來編譯

將終端機下的工作目錄移動到Android專案的目錄下,執行以下指令使用Android NDK開始編譯FAAC。

ndk-build

編譯成功的話可以看到以下畫面:

使用FAAC For Android

編譯出FAAC的.so檔之後,要如何在Android SDK下使用呢?因為FAAC官方並未提供任何JNI的支援,所以這部份需要自行實作。要在JNI內使用FAAC函式庫的話,可以引入(include)faac目錄下,「include」目錄裡的「faac.h」檔案。使用方法可以直接參考「faac.h」檔案裡的註解和「faaccfg.h」檔案裡的定義。