



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第Android如何采用Lame編碼器編碼mp3文件這篇文章會基于下面3個問題來展開講解。
1、什么是Lame?
2、為什么采用Lame
3、Lame在Android應(yīng)用上如何使用?
一、什么是Lame
我們看下Lame官網(wǎng)(lame.sourceforge.io/index.php)給的描述
LAMEisahighqualityMPEGAudioLayerIII(MP3)encoderlicensedundertheLGPL.
翻譯成中文就是:LAME是一個高質(zhì)量的MPEG音頻層III(MP3)編碼器,在LGPL下授權(quán)。
好了,現(xiàn)在我們知道Lame就是個開源的編碼器,而且是專門用來編碼mp3文件的。
二、為什么要采用Lame
在Android上開發(fā)過錄音功能的同學(xué)應(yīng)該知道,在Android上要實現(xiàn)錄音功能,有2種方式。一種是采用AudioRecord的方式,AudioRecord錄制的直接是原始的pcm數(shù)據(jù),另一種方式就是采用MediaRecord,可以錄制類似amr、aac格式的文件。
這里貼下MediaRecord目前支持的錄音格式,可以看到目前是不支持mp3的。那這時我們想要編碼mp3的文件,就得借助lame來實現(xiàn)了。
publicfinalclassAudioEncoder{
/*Donotchangethesevalueswithoutupdatingtheircounterparts
*ininclude/media/mediarecorder.h!
privateAudioEncoder(){}
publicstaticfinalintDEFAULT=0;
/**AMR(Narrowband)audiocodec*/
publicstaticfinalintAMR_NB=1;
/**AMR(Wideband)audiocodec*/
publicstaticfinalintAMR_WB=2;
/**AACLowComplexity(AAC-LC)audiocodec*/
publicstaticfinalintAAC=3;
/**HighEfficiencyAAC(HE-AAC)audiocodec*/
publicstaticfinalintHE_AAC=4;
/**EnhancedLowDelayAAC(AAC-ELD)audiocodec*/
publicstaticfinalintAAC_ELD=5;
/**OggVorbisaudiocodec*/
publicstaticfinalintVORBIS=6;
/**@hideEVRCaudiocodec*/
publicstaticfinalintEVRC=10;
/**@hideQCELPaudiocodec*/
publicstaticfinalintQCELP=11;
/**@hideLinearPCMaudiocodec*/
publicstaticfinalintLPCM=12;
三、Lame在Android應(yīng)用上如何使用
在android上集成開源的代碼,很多時候套路都差不多,就是下載源碼,編譯出相關(guān)的so庫,然后就是調(diào)用這些庫提供的方法了,當(dāng)然,調(diào)用so庫里面的方法,應(yīng)用上需要借助jni來實現(xiàn)。
這里就不介紹如何下載lame源碼和編碼so庫了。編譯lame源碼后,我們會得到一個libmp3lame.so的庫文件,調(diào)用這個so庫里面的方法,還需要我們?nèi)崿F(xiàn)JNI部分的代碼。
整體的思路就是,應(yīng)用層通過調(diào)用JNI提供的native方法,然后調(diào)用到libmp3lame.so庫里面的方法,實現(xiàn)編碼mp3文件。
這里給出的一個例子是將pcm格式的文件編碼mp3格式的文件。
代碼git地址:/yorkZJC/And…代碼邏輯這里簡單講下:
LameEncodeJniNative.java是本地封裝的native方法,為應(yīng)用層提供了2個方法,一個是編碼,一個是結(jié)束。這2個方法對應(yīng)c++層具體的實現(xiàn),可以看工程cpp/目錄下文件的實現(xiàn),cpp文件里面的實現(xiàn)也比較簡單。
應(yīng)用代碼調(diào)用的時候,就是傳入對應(yīng)的pcm源文件和需要生成的mp3文件路徑,還有pcm源文件的格式信息(采用率、通道數(shù)、編碼數(shù)據(jù)位數(shù))。
FilepcmFile=newFile(getExternalFilesDir(null),"input.pcm");
Filemp3File=newFile(getExternalFilesDir(null),"output.mp3");
mLameEncoder=newLameEncodeJniNative();
mLameEncoder.encode(pcmFile.getAbsolutePa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年抗輻射光學(xué)石英玻璃合作協(xié)議書
- 2025年山梨酸及山梨酸鉀合作協(xié)議書
- 2025年冷芯盒樹脂項目建議書
- 家庭寵物寄養(yǎng)與托管服務(wù)協(xié)議
- 履行合同能力保證書
- 房地產(chǎn)中秋晚會活動策劃方案
- 電子行業(yè)智能制造與工業(yè)自動化方案
- 公司之間戰(zhàn)略合作協(xié)議書
- 營銷推廣戰(zhàn)略合作協(xié)議修訂案
- 施工現(xiàn)場的應(yīng)急響應(yīng)計劃試題及答案
- 國際投標(biāo)條款
- 6.1 根結(jié)、標(biāo)本的上下關(guān)系
- GB/T 3301-1999日用陶瓷的容積、口徑誤差、高度誤差、重量誤差、缺陷尺寸的測定方法
- GB/T 13928-2002微型往復(fù)活塞空氣壓縮機
- GB/T 12224-2005鋼制閥門一般要求
- 偷影子的人-大學(xué)語文PPT
- GB/T 11022-2020高壓交流開關(guān)設(shè)備和控制設(shè)備標(biāo)準(zhǔn)的共用技術(shù)要求
- GB 4789.3-2016食品安全國家標(biāo)準(zhǔn)食品微生物學(xué)檢驗大腸菌群計數(shù)
- 裝飾窗簾安裝內(nèi)部驗收單
- 同等學(xué)力哲學(xué)學(xué)科綜合考試大綱思考題匯總
- 象鼻嶺無蓋重固結(jié)灌漿試驗大綱修定稿
評論
0/150
提交評論