AVAudioEngine的使用心得

1.AVAudioEngine負(fù)責(zé):

  ? 管理所有的音頻節(jié)點(diǎn)(audio nodes)
  ? 連接所有的音頻節(jié)點(diǎn)使其運(yùn)作形成鏈條(active chains)
  ? 動(dòng)態(tài)的獲取(attach)和配置所有音頻的節(jié)點(diǎn)右钾。
  ? 開(kāi)啟和停止API

2.有多種node,負(fù)責(zé)實(shí)現(xiàn)不同的功能,而AVAudioEngine在運(yùn)行中可以自由組合箕戳、拆卸node,node經(jīng)由它們各自的輸入被連接到下一級(jí)的輸出国撵,從而可以靈活實(shí)現(xiàn)想要的效果陵吸,但是AVAudioEngine在運(yùn)行中不能拆卸(detach)inputNode和OutputNode,且disconectNodes(兩個(gè)node)時(shí)介牙,必須同時(shí)disconect掉前一個(gè)node的output和后一個(gè)node的input壮虫。由于沒(méi)有發(fā)現(xiàn)這些細(xì)節(jié),導(dǎo)致采用比較復(fù)雜的方式解決插扒耳機(jī)的問(wèn)題以至于觸發(fā)了新的問(wèn)題环础。

3.AVAudioEngine實(shí)例化后默認(rèn)有三個(gè)node囚似,分別為inputNode剩拢、outputNode,這兩個(gè)node不可以被detach谆构,還有一個(gè)可選的mainMixerNode裸扶。

4.在使用AVAudioEngine時(shí),inputNode搬素、outputNode分別對(duì)應(yīng)硬件的麥克風(fēng)和揚(yáng)聲器呵晨,需要檢查其采樣率和聲道數(shù),若采樣率為0熬尺,則不可用摸屠。

5.使用實(shí)例,實(shí)現(xiàn)錄音+耳返+音樂(lè)粱哼,且耳返和錄音結(jié)果中有混響效果:

inputNode(麥克風(fēng))
                     mixerNode(混音)–> reverbNode(混響)–> outputNode(輸出)
playerNode(播放背景音樂(lè))
// attach EngineNodes
self.input = self.engine.inputNode;// 輸入
self.output = self.engine.outputNode;// 輸出
[self.engine attachNode:self.reverb];// 混響
[self.engine attachNode:self.mixer];
[self.engine attachNode:self.player];
// make Engine Connections
[self.engine connect:self.player to:self.mixer fromBus:0 toBus:0 format:[file processingFormat]];
[self.engine connect:self.input to:self.mixer fromBus:0 toBus:1 format:[self.input inputFormatForBus:0]];
[self.engine connect:self.mixer to:self.reverb  format:self.audioFormat];
[self.reverb installTapOnBus:0 bufferSize:8192 format:self.audioFormat block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) {
    if (self->_isRecording) {// write buffer to file
        [weakSelf.audioFile writeFromBuffer:buffer error:&writeBufferError];
        weakSelf.currentRecTime += buffer.frameLength/when.sampleRate;        
    }
}];
[self.engine connect:self.reverb to:self.output format:self.audioFormat];
// start && play
[self.engine prepare];
[self.engine startAndReturnError:&startError];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末季二,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揭措,更是在濱河造成了極大的恐慌胯舷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绊含,死亡現(xiàn)場(chǎng)離奇詭異桑嘶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)躬充,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)逃顶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人充甚,你說(shuō)我怎么就攤上這事以政。” “怎么了伴找?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵盈蛮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我技矮,道長(zhǎng)抖誉,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任穆役,我火速辦了婚禮寸五,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耿币。我一直安慰自己梳杏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著十性,像睡著了一般叛溢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上劲适,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天楷掉,我揣著相機(jī)與錄音,去河邊找鬼霞势。 笑死烹植,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的愕贡。 我是一名探鬼主播草雕,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼固以!你這毒婦竟也來(lái)了墩虹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤憨琳,失蹤者是張志新(化名)和其女友劉穎诫钓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體篙螟,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菌湃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闲擦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慢味。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡场梆,死狀恐怖墅冷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情或油,我是刑警寧澤寞忿,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站顶岸,受9級(jí)特大地震影響腔彰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辖佣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一霹抛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卷谈,春花似錦杯拐、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朗兵。三九已至,卻和暖如春顶滩,著一層夾襖步出監(jiān)牢的瞬間余掖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工礁鲁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盐欺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓仅醇,卻偏偏與公主長(zhǎng)得像找田,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子着憨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 背景 iOS系統(tǒng)提供了非常豐富的音頻相關(guān)的API墩衙,涵蓋了從采集,處理到播放等各個(gè)環(huán)節(jié)甲抖,并且按照需求的層次進(jìn)行...
    金山視頻云閱讀 3,778評(píng)論 1 14
  • 如果圖片不顯示可以到我的小站去看 簡(jiǎn)介 AVFoundation 在iOS上多媒體的處理主要依賴(lài)的是AVFound...
    茉莉兒閱讀 3,692評(píng)論 3 8
  • AudioUnit簡(jiǎn)介 AudioUnit這個(gè)名字取得還是比較形象的漆改,它的主體就是一系列的unit,不同unit能...
    泥孩兒0107閱讀 4,515評(píng)論 0 2
  • 前言: 記載資料多為網(wǎng)絡(luò)搜集准谚,侵刪挫剑。 根據(jù)最近接觸的整機(jī)項(xiàng)目做了一些整機(jī)音頻相關(guān)基礎(chǔ)知識(shí)的總結(jié),如有不足或表述問(wèn)題...
    Gawain_Knowknow閱讀 8,154評(píng)論 0 4
  • 在學(xué)校待久了柱衔,整個(gè)人都要發(fā)霉了樊破,今天特地出來(lái)散散心,經(jīng)過(guò)一個(gè)多小時(shí)的公交車(chē)唆铐,到達(dá)市區(qū)哲戚,一個(gè)人逛逛街,看看來(lái)往不息的...
    花香飄自沉淀處閱讀 216評(píng)論 0 0