我用AUMixer構建了AUGraph,當通過iPhone7plus上的回調播放流時,音頻播放聽起來很糟糕。您可以聽到音頻和正在說的內容,但它非常粗糙。如果我在iPhone6上構建並運行,那聽起來很好。AUG-> pcm轉換後的音頻流在iPhone7plus上聽起來波濤洶涌,但不是iPhone6
我也有一個單獨的音頻單元,沒有調音臺,在iPhone7和iPhone6上聽起來不錯,但我當然失去了調音臺所需的功能。我正在使用相同的AudioStreamBasicDescription來設置這兩個設置(帶有調音臺的圖形和單數audiounit)
想法爲什麼它聽起來很糟糕,特別是與我的iPhone7 plus上的圖形?
My current ASBD:
_pcmASBD AudioStreamBasicDescription
mSampleRate Float64 44100
mFormatID AudioFormatID 1819304813
mFormatFlags AudioFormatFlags 12
mBytesPerPacket UInt32 4
mFramesPerPacket UInt32 1
mBytesPerFrame UInt32 4
mChannelsPerFrame UInt32 2
mBitsPerChannel UInt32 16
mReserved UInt32 0
我做AAC到PCM轉換,然後餵養的數據到AURenderCallback,然後最後一個由AudioUnit架構發揮出了pendingBufferList。
我需要使用混音器,因爲我想控制音量,所以一個單獨的AudioUnit方法(它不會顯示此錯誤,但使用相同的回調和一切)不適用於我,因爲我不喜歡調製音頻通過影響原始數據流。
編輯:
將更多的代碼和想法加入到這個有希望解決這一問題。
我使用AudioConverter處理AAC的傳入流,然後將其轉換爲LPCM,然後將它饋送到我的AudioBufferList中,該聲音在audiounit圖渲染過程中被填充。
我注意到,如果我去48Khz的(編碼然後流) - > 48kHz的(接收流,解碼,播放),這聽起來不錯,我的音頻渲染PROC顯示1024
inNumberFrames如果我去的44.1kHz - > 48khz它聽起來很scrat((我的音頻單元圖表使聲音是正確的音高,但由於採樣率轉換器我放入),但音頻渲染過程顯示inNumberFrames爲941或940
我覺得這可能是什麼hotpaw2正在談論,但是當我將我的AudioBufferList的大小設置爲4 * inNumberFrames的倍數時,它仍然聽起來很scrat。。
@ hotpaw2?
感謝您的意見,我檢查了硬件採樣率,並確保他們使用支持的硬件(的確是48000)我仍然有問題。我收到一個AAC流,我將音頻轉換到PCM上,然後通過我的AUGraph播放。使用單一的AudioUnitComponent,它聽起來使用相同的回調邏輯找到,我用這兩個邏輯填充pendingBufferList,但只有Graph似乎顯示了這個問題。我只是使用單數AudioUnitComponent,但我需要使用該圖形來進行音量混合。 – theprojectabot
我已更新我的原始問題?有什麼想法嗎? – theprojectabot