Re: [問題] 請問iPhone有辦法將接收道的聲音直接放 …

看板MacDev作者 (zonble)時間13年前 (2011/05/11 22:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串16/19 (看更多)
※ 引述《tocute (小飄)》之銘言: : ※ 引述《zonble (zonble)》之銘言: : 剛好也需要類似的功能 : 謝謝Z大提供的AudioStudy 教學 : 因為是研究之初 所以有些地方看不懂想請教一下各位板友 : 我最大的疑惑是 : 我找到的範例 幾乎都是在 : AudioQueueNewOutput 的 callback function 讀檔 : 根據我以前在ms, android 的經驗 : audio data 不是應該在 callback function 傳進來的參數嗎 : ex :AudioQueueBufferRef inBuffer : 在callback function 內再把 audio data: inBuffer 傳給 speaker : 而Z大提供的AudioStudy 裡面的OutptBufferHandler : 似乎只有做 NSLog 這動作 : 即使註解掉 也能跑 audio queue 的 callback function 是在目前的 audio queue 資料已經放完之後,才會去觸發。所以,你一般看到的範例在做 的事情是,因為目前的資料已經放完了,需要繼續要資料,可能 是去讀檔案,或是已經在記憶體的 data,所以會在 callback function 中繼續讀資料。 但是這個範例的狀況是,由於是把錄音進來的資料直接放出來, 所以,在放出聲音之後,就沒去做這件繼續讀資料的事情,反正 Input 有什麼資料,就往 Output 送。 實際上在把聲音丟到 Output 工作的,就是 88 到 94 行這段, 把 Input 進來的 buffer,用 memcpy 把資料直接複製到新的 buffer,然後在 94 行的 AudioQueueEnqueueBuffer,丟到 Output queue 去。 比較需要注意的是,Input Queue 在一直不斷重複使用同一個 buffer,然後每次都產生新的 buffer 給 output queue。 這個範例寫得比較隨便 :p -- zonble.net cocoa.zonble.net -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.195.12
文章代碼(AID): #1DofQRWA (MacDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 16 之 19 篇):
文章代碼(AID): #1DofQRWA (MacDev)