iOS錄音與編碼那點(diǎn)事辫诅,處理跨端播放問題

iOS錄音主要通過兩種方式來實(shí)現(xiàn):

其一:使用底層的AudioToolbox.framework 亡电、CoreAudioTypes.framework相關(guān)主要類:AudioQueueRef串稀、AudioStreamBasicDescription粥庄、AudioQueueBufferRef岖瑰,此方式的好處是能實(shí)現(xiàn)邊錄制邊緩存數(shù)據(jù)叛买,在線播放無需等待音頻文件全部下載完成,可以邊緩沖邊播放蹋订,提高用戶體驗(yàn)率挣。另外實(shí)現(xiàn)混音、去除回音也得使用底層Api來實(shí)現(xiàn)露戒。

AudioStreamBasicDescription recordFormat; ? //音頻流配置

-? (void)initFormat {

? ? recordFormat.mSampleRate=? KDefaultSampleRate;? //采樣率

? ? recordFormat.mChannelsPerFrame = KDefalutChannel; //聲道數(shù)量

? ? //編碼格式

? ? recordFormat.mFormatID = kAudioFormatLinearPCM;

? ? recordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;

? ? //每采樣點(diǎn)占用位數(shù)

? ? recordFormat.mBitsPerChannel = KBitsPerChannel;

? ? //每幀的字節(jié)數(shù)

? ? recordFormat.mBytesPerFrame = (recordFormat.mBitsPerChannel / 8) * recordFormat.mChannelsPerFrame;

? ? //每包的字節(jié)數(shù)

? ? recordFormat.mBytesPerPacket = recordFormat.mBytesPerFrame;

? ? //每幀的字節(jié)數(shù)

? ? recordFormat.mFramesPerPacket = 1;

}

其二:使用蘋果的AVFoundation.framework 的相關(guān)主要類:AVAudioSession椒功、AVAudioRecorder

此方式使用起來簡單,容易理解各種參數(shù)配置智什。

- (NSDictionary *)getAudioSetting{

? ? NSMutableDictionary *dicM = [NSMutableDictionary dictionary];

? ? [dicM setObject:@(kAudioFormatLinearPCM) forKey:AVFormatIDKey];

? ? [dicM setObject:@(ETRECORD_RATE) forKey:AVSampleRateKey];

? ? [dicM setObject:@(2) forKey:AVNumberOfChannelsKey];

? ? [dicM setObject:@(16) forKey:AVLinearPCMBitDepthKey];

? ? [dicM setObject:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey];

? ? return?dicM;

}


錄音時設(shè)置的編碼通常是kAudioFormatLinearPCM或者kAudioFormatMPEG4AAC动漾,但是發(fā)現(xiàn)一個問題,無論你使用何種編碼荠锭,哪怕設(shè)置kAudioFormatMPEGLayer3編碼后錄制的音頻文件在Android端或Chrome瀏覽器端都無法播放旱眯?那如何解決呢?

通過錄制pcm編碼的原始音頻证九,然后通過mp3的轉(zhuǎn)碼庫Lame(demo鏈接:https://github.com/CivelXu/iOS-Lame-Audio-transcoding)轉(zhuǎn)碼成mp3的編碼后再上傳到服務(wù)器删豺,這樣解決了跨端播放的兼容問題。


文件大小如何甫贯?

本人測試了一下錄音文件的大小吼鳞,近30秒鐘的音頻錄音測試,設(shè)備iPhone6s叫搁、雙聲道赔桌、采樣率11025 供炎、16位。

pcm編碼? :1.3?MB疾党,轉(zhuǎn)換成mp3編碼后的大幸艚搿:? 109?KB 。(由此推算5分鐘的錄音大致1MB大醒┪弧)

如果改成單聲道竭钝、采樣率還是11025:

pcm編碼 : 673?KB,轉(zhuǎn)換成mp3編碼后的大小? :85?KB 雹洗。

但是單聲道的文件通過Lame轉(zhuǎn)換后發(fā)現(xiàn)實(shí)際音頻時長變成了二分之一香罐?這個估計需要修改demo的相關(guān)轉(zhuǎn)碼算法?具體還清楚时肿!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庇茫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子螃成,更是在濱河造成了極大的恐慌旦签,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寸宏,死亡現(xiàn)場離奇詭異宁炫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)氮凝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門羔巢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人覆醇,你說我怎么就攤上這事朵纷。” “怎么了永脓?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵袍辞,是天一觀的道長。 經(jīng)常有香客問我常摧,道長搅吁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任落午,我火速辦了婚禮谎懦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溃斋。我一直安慰自己界拦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布梗劫。 她就那樣靜靜地躺著享甸,像睡著了一般截碴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛉威,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天日丹,我揣著相機(jī)與錄音,去河邊找鬼蚯嫌。 笑死哲虾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的择示。 我是一名探鬼主播束凑,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼对妄!你這毒婦竟也來了湘今?” 一聲冷哼從身側(cè)響起敢朱,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剪菱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拴签,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孝常,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年蚓哩,在試婚紗的時候發(fā)現(xiàn)自己被綠了构灸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡岸梨,死狀恐怖喜颁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曹阔,我是刑警寧澤半开,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站赃份,受9級特大地震影響寂拆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抓韩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一纠永、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谒拴,春花似錦尝江、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怠蹂。三九已至,卻和暖如春少态,著一層夾襖步出監(jiān)牢的瞬間城侧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工彼妻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嫌佑,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓侨歉,卻偏偏與公主長得像屋摇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幽邓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評論 2 359