移動端(iOS,安卓)即時通訊長鏈接傳輸格式speex音頻文件錄制及播放原理

錄制原理:
1,RecorderManager中通過AudioSession進(jìn)行PCM音頻錄制,錄制格式為WAV格式,并開啟levelMeterState,可以實時顯示錄制音量
2,獲取PCM音頻錄制buffer,每20ms一個buffer,開啟三個buffer來循環(huán)input到Encapsulator中進(jìn)行speed音頻編碼
3,Encapsulator中對于每一個輸入的buffer放到oprationQueue中,按順序進(jìn)行encode,對于encode完的speex buffer,按頁為單位,通過NSFileHandle尋址到當(dāng)前已經(jīng)寫入的文件末尾,寫入當(dāng)前頁
4,錄制過程中生成的PCM音頻buffer只存在于內(nèi)存中,占用少量內(nèi)存,每轉(zhuǎn)換一個buffer的speex格式則將其存儲到本地文件中
5,在8khz下每秒鐘占用1kB的本地存儲空間(8khz對于語音說話足夠)

播放原理:
1,PlayerManager中將本地存儲的speex文件整個讀入內(nèi)存中
2,Decapsulator中將speex一段段的讀入buffer,通過SpeexCodec進(jìn)行decode
3,decode的PCM音頻buffer輸入到RawAudioDataPlayer中
4,RawAudioDataPlayer 將PCM的buffer音頻通過AudioQueueEnqueueBuffer進(jìn)行播放輸出

引用:http://blog.csdn.net/a_asinceo/article/details/46487125 iOS安卓互通方案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容