2012-05-10 48 views
0

我可以在OS X 10.7使用正在由現有的對象,我不能改變產生的,並傳遞給一個類的對象輸出線性PCM音頻幀什麼API我的創作?我無法訪問始發音頻流,只是數據包。 CoreAudio AudioUnit或AudioQueue,或者AVAudioPlayer可以設置爲在發送到我的對象時簡單地播放這些幀嗎?OS X播放音頻幀是他們送給我的

回答

1

有一個Mac OS X或iOS裝置,因爲它們是由現有的源產生的,可以播放PCM音頻樣本流上沒有公共API。

音頻隊列和(RemoteIO)音頻單元API都是基於回調(「拉」),以嚴格的採樣率運行,並具有實時要求(例如,您不能等待回調中的數據) 。您的對象必須將音頻PCM幀(由源生成)保存在其自己的緩衝區或數據結構中,然後以音頻回調請求的數量從這些緩衝區中複製樣本。你的對象也可以在啓動音頻之前預裝一定量的緩衝區,自適應溢句柄,如果樣本在低於音頻回調需要的速度,如果它得到更多的數據比它可以某處緩衝並播放所產生,以及處理溢出及時。