我已經指定並實例化了兩個音頻單元:一個多聲道混音器單元和一個子類型AudioFilePlayer的生成器。我需要設置核心音頻文件播放器音頻單元的ASBD嗎?
我會想我需要設置filePlayer輸出的ASBD以匹配爲混音器輸入設置的ASBD。但是,當我嘗試設置filePlayer的輸出時,我得到一個kAudioUnitErr_FormatNotSupported(-10868)錯誤。
這裏是流格式我在混頻器輸入(成功)設置和我也試圖在filePlayer設置(這是來自蘋果的mixerhost示例項目複製的monostream格式):
Sample Rate: 44100
Format ID: lpcm
Format Flags: C
Bytes per Packet: 2
Frames per Packet: 1
Bytes per Frame: 2
Channels per Frame: 1
Bits per Channel: 16
在使用過程中解決這個問題我查詢filePlayer AU的格式是「本地」設置的。這是所返回的內容:
Sample Rate: 44100
Format ID: lpcm
Format Flags: 29
Bytes per Packet: 4
Frames per Packet: 1
Bytes per Frame: 4
Channels per Frame: 2
Bits per Channel: 32
所有示例代碼,我發現發送filePlayer單元的輸出效果器,並設置filePlayer的輸出,以匹配該效果單元的ASBD集。鑑於我沒有效果單元,它似乎將filePlayer的輸出設置爲混音器輸入的ASBD將是正確的並且是必需的。
在此先感謝!
我一直在回答這個問題,因爲我收到了SO以外的幫助。基本上我沒有打擾設置filePlayer ASBD,而是檢索了它設置的「本機」ASBD,並僅更新了採樣率和通道數。同樣,我沒有在調音臺上設置輸入,並讓調音臺將其格式化。 – Nick