2011-11-27 51 views
1

我有簡單的代碼,使用AudioUnit呈現正弦波到輸出。我的問題是:我應該把框架的價值範圍是什麼?我的意思是,在AudioUnitRender函數中,我應該爲緩衝區數組提供一些音頻數據......那麼我應該輸入什麼值?目前我插入-1到1的值,但是我發現我也可以使用更大的值...AudioUnit幀的最大值?

那麼我應該使用什麼最大值(表示100%的體積)呢?

謝謝:)

回答

3

這完全取決於您正在使用的流格式。您應該創建一個AudioStreamBasicDescription並將其設置爲音頻單元的輸入格式。有很多不同的流格式,每種都有不同的表示「100%音量」的方式。如果你選擇浮點數,例如-1.0到1.0,但是如果你選擇無符號的16位,那麼它將是從0到65535.

我不確定你已經設置了什麼代碼您的音頻單元,但一個很好的例子,似乎在這裏顯示: http://atastypixel.com/blog/using-remoteio-audio-unit/

在那個例子中,你會發現它創建一個AudioStreamBasicDescription並選擇線性PCM與kAudioFormatFlagIsSignedInteger標誌,以每通道16位和1路。這意味着數值將從-32768到32767.