真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AAC編碼java代碼 aac編碼什么意思

Android2.2 怎么支持AAC音頻錄制

下面是相關(guān)參數(shù)的代碼段??辞宄耍窃贏ndroid 2.2 SDK 包去實(shí)現(xiàn)支持 AAC 音頻錄制的。在Android 2.3.3 包下,這段代碼是可以寫成這樣的:[mw_shl_code=java,true]mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);[/mw_shl_code]但是要兼容這個(gè)2.2系統(tǒng)的問(wèn)題?。。?![mw_shl_code=java,true]/* ①Initial:實(shí)例化MediaRecorder對(duì)象 */ mMediaRecorder = new MediaRecorder(); /* ②setAudioSource/setVedioSource */ mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 設(shè)置麥克風(fēng) /* * ②設(shè)置輸出文件的格式:THREE_GPP/MPEG-4/RAW_AMR/Default * THREE_GPP(3gp格式,H263視頻 * /ARM音頻編碼)、MPEG-4、RAW_AMR(只支持音頻且音頻編碼要求為AMR_NB) */ mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); /* ②設(shè)置音頻文件的編碼:AAC/AMR_NB/AMR_MB/Default */ mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); /* ②設(shè)置輸出文件的路徑 */ try { mRecAudioFile = File.createTempFile(strTempFile, ".mp3", mRecAudioPath); } catch (Exception e) { e.printStackTrace(); }[/mw_shl_code]

我們是于2013年成立的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計(jì)開(kāi)發(fā),外貿(mào)網(wǎng)站制作,響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì),小程序定制開(kāi)發(fā)、等服務(wù)。為客戶創(chuàng)造有價(jià)值的品牌營(yíng)銷體驗(yàn),讓互聯(lián)網(wǎng)提升企業(yè)的競(jìng)爭(zhēng)力!

怎樣用AACLib V1.0在Android上音頻編碼解碼

這幾天在 android上的音頻項(xiàng)目,順便把用到的aac編解碼庫(kù)封裝了一下,有需要的可以從上面下載。當(dāng)然是沒(méi)有本事自己寫編解碼器的,還是用FFmpeg + FDK_aac來(lái)做。下面介紹一下其java接口的使用。java庫(kù)見(jiàn)libaac.jar文件,把libaac.jar加到 libs目錄下,把libaac.so加到 libs/armeabi目錄即可使用。

AAC編碼:

(1) 創(chuàng)建一個(gè)Encoder對(duì)象作為成員變量

aac.Encoder encoder;

(2) 初始化它

encoder = new aac.Encoder();

if(! encoder.open(11025, 1))

{

Log.d("mylog", "failed to open encoder !\n");

encoder = null;

}

這里要指定輸入音頻源(PCM格式)的sampe_rate和channel個(gè)數(shù),如果為CHANNEL_OUT_MONO,則channel=1,否則為2。 sample_rate一般設(shè)置為11025,因?yàn)槭謾C(jī)性能有限,設(shè)置太高的話也處理不過(guò)來(lái),而且處理人聲的話11025也是足夠了。

(3) 編碼

把接收到PCM數(shù)據(jù)交給encoder來(lái)處理即可,要求輸入源為ENCODING_PCM_16BIT,即每個(gè)sample是16BIT的。這個(gè)encoder對(duì)象內(nèi)有2個(gè)緩沖區(qū):inbuf, outbuf。顯然,在編碼時(shí),inbuf就是用于存儲(chǔ)接收到的PCM數(shù)據(jù),outbuf就是存編碼后得到的數(shù)據(jù)。

int out_size = encoder.encode(in_size);

其返回值out_size,表示在outbuf里的有效數(shù)據(jù)長(zhǎng)度。此時(shí)可以把outbuf里的aac數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送或其他用途。

其中,用戶需要知道encoder每次處理多長(zhǎng)的數(shù)據(jù),即一個(gè)frame的大小。對(duì)于單聲道MONO來(lái)說(shuō),每次應(yīng)該輸入2048byte的數(shù)據(jù)。對(duì)于雙聲道STEREO來(lái)說(shuō),應(yīng)該輸入4096byte的數(shù)據(jù)。下面這一行可以根據(jù)聲道數(shù)來(lái)計(jì)算輸入的frame的大小:

int in_size = aac.Encoder.frameSize(1);

AAC解碼:

(1) 創(chuàng)建一個(gè)Decoder對(duì)象作為成員變量

aac.Decoder decoder;

(2) 初始化

decoder = new aac.Decoder();

if( ! decoder.open())

{

Log.d("mylog", "failed to open decoder !\n");

decoder = null;

}

(3) 解碼

Decoder對(duì)象也有inbuf和outbuf,把待解碼的aac frame放到inbuf里

int pcm_size = decoder.decode(aac_size);

解得到數(shù)據(jù)在outbuf里,其有效長(zhǎng)度為上述函數(shù)的返回值pcm_size,此時(shí)可以把outbuf里的PCM數(shù)據(jù)取出來(lái)播放或其他用途。

java代碼能將aac格式文件轉(zhuǎn)換成m3u8格式嗎

剛好了解,可以實(shí)現(xiàn)的,通過(guò)java代碼調(diào)用ffmpeg去轉(zhuǎn)換,是ok的, 但是ffmpeg沒(méi)有對(duì)應(yīng)java的api(我是沒(méi)找到),我的實(shí)現(xiàn)方式去通過(guò)java代碼調(diào)用命令行,來(lái)完成轉(zhuǎn)換的.

怎樣播放aac格式的音頻文件

樓主把后綴改為.mp4試試。因?yàn)槿纾簃p4 = h264 + aacmp4只是個(gè)外殼格式,所以aac后綴opencore是不能識(shí)別的。


文章題目:AAC編碼java代碼 aac編碼什么意思
網(wǎng)頁(yè)地址:http://weahome.cn/article/hisshe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部