2014-02-17 45 views
0

我正在構建一個應用程序,該應用程序在應用均衡(EQ)效果的同時播放用戶音樂庫中的歌曲。我以前只使用AudioUnits來生成聲音,所以我遇到了一些麻煩。使用AudioUnits從音樂庫中播放和eq歌曲

我目前的計劃是用AVAssetReader來獲取樣本,雖然我上有點模糊,在這裏我的問題是關於正確AudioUnit設計模式,從蘋果公司的文檔中使用:https://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/ConstructingAudioUnitApps/ConstructingAudioUnitApps.html#//apple_ref/doc/uid/TP40009492-CH16-SW1

我的猜測是需要一個渲染回調來執行我的EQ效果(我在考慮kAudioUnitSubType_ParametricEQ),這樣就留下了「具有渲染回調函數的I/O」模式或「僅具有渲染的輸出回調函數「。如果我正在從音樂庫中讀取數據(可能通過AVAssetReader),那麼這兩種模式中哪一種最適合?

+0

此線程也證明有幫助:http://stackoverflow.com/questions/12264799/why-is-audio-coming-up-garbled-when-using-avassetreader-with-audio-queue – Rogare

回答

1

我認爲你需要使用帶輸出的渲染回調函數。回調函數應負責讀取/解碼音頻數據,並應用EQ效果。

順便說一句,我不知道這是否有用,但here它說,有一個已經存在的EQ音頻單元,你可以使用。