Re: [問題] 請問iPhone有辦法將接收道的聲音直接放 …
※ 引述《ryanliang (暑假閒閒的大學生~~)》之銘言:
: ※ 引述《zonble (zonble)》之銘言:
: 只是我想請問,在您的範例中,該要怎麼確定audio streaming有成功
: ?換句話說,如何去檢查inputBuffers裡是有資料的?
我說一下我所理解的 Audio Queue 好了。
Audio Queue 就很像是幾個水桶(buffer)在那邊排隊。如果在處理
輸入的時候,首先就會準備幾個空的水桶,用來裝 streaming 進來的
資料,如果一個水桶裝完了,就先把這桶水拿到一個地方處理,同時
有另外一個水桶接上去繼續裝水。這個把裝好的水桶拿出來,處理裝
進來的水的工作,就是在我們所指定的 callback function 中。
在 callback function 中,我們可以把收到的 binary data 儲存起
來,或是要看看做些什麼其他的事情,像是送到某個 view 中,顯示
目前收到的音量、畫個條狀圖有多大之類的。做完這些事情之後,我
們就要把這個空水桶拿回去繼續排隊裝水,這就是 enqueue。
在處理輸出的時候,我們就不能夠拿空水桶,而是要準備一些裝滿水
的水桶,拿去輸出裝置,把水倒出來。而觸發 callback 的時機就剛
好與輸入相反,是一桶水被倒光了之後,會把這個空水桶拿回來,要
你把水裝進這個空水桶裡。
我的寫法比較隨便,在裝滿水的 callback function 裡頭,直接產
生一個新的 buffer,然後就拿去倒水了。因為是裝滿水的 callback
function,如果沒有裝滿水,那應該要去回報 apple bug了吧。:p
--
zonble.net
cocoa.zonble.net
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.110.98
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章
65
105