作者ryanliang (暑假閒閒的大學生~~)
看板MacDev
標題Re: [問題] 請問iPhone有辦法將接收道的聲音直接放 …
時間Thu Jan 6 15:35:32 2011
※ 引述《ryanliang (暑假閒閒的大學生~~)》之銘言:
: ※ 引述《zonble (zonble)》之銘言:
: : 我那段程式的寫法是,直接把裝滿的 input buffer,copy 到
: : 一個 output buffer 裡頭。就是 memcpy 那一行在做的事情。
: 那我懂了,memcpy把inBuffer裡的資料丟到output buffer裡去,這樣
: 一來,inBuffer裡就沒有data了,所以要讓它回到inAQ去排隊等,然
: 後下一個滿的inBuffer再進來,一直循環。
: 原來是這麼回事,感謝zonble大!!!!
事隔已久,借個標題再問一下。
前情題要一下,之前設定的Audio格式是Linear PCM,將未壓縮的資料丟進
三個Buffer中,之後再透過OutputBufferHandler把裝滿的Buffer拿去倒,
大致上是這樣。
現在遇到了一個問題。我將Audio的格式及參數改成AAC的格式及參數後,
OutputBufferHandler就不會work了。
我先寫了一個小的測試程式用同樣的方法,去做錄音的動作。
但我把OutputBufferHandler給拿掉,直接在InputBufferHandler裡面把資料
用AudioFileWritePackets寫到檔案裡去也是可以work,而我寫入檔案的格式
是用AAC編碼,也是可以順利存成AAC的檔案。
這證明了Audio Queue Services是可以做Audio Encode的,我納悶的是為什
麼換了格式,OutputBufferHandler就不會動作了?
希望板上先進給我一點意見
謝謝~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.177.46
1F:→ zonble:如果你是要讀取檔案的話,要先把檔案從其他格式轉成 01/06 18:03
2F:→ zonble:Linear PCM,然後再丟到 output queue 去 01/06 18:04
3F:→ zonble:查一下 AudioFile 開頭的 API,裡頭有幫你轉換 audio file 01/06 18:05
4F:→ zonble:的相關 API 01/06 18:05
5F:→ zonble:說錯,轉換格式的是 AudioConverter 01/06 18:06
6F:→ zonble:看一下 AudioConverterConvertBuffer 01/06 18:06