2011-08-24 94 views

回答

5

如果您將音頻播放製作爲AudioUnit圖形,則應該可以使用內置的iPod EQ AudioUnit,以及iPod應用程序中的預設。看看this example這將有助於你理解如何做到這一點。

在閱讀代碼時,請確保您明白音頻單元是圖形中的節點,音頻信號通過回調方式流過圖形,並且每個節點都可以修改信號輸出節點(基本上是揚聲器)。因此,您所做的是將文件加載到內存中,然後將PCM(聲音採樣)數據以您指定的回調形式提供給音頻單元。當緩衝區爲空時,回調將被調用,您可以填充它。

鏈接的例子設置了一個混音器節點,輸出節點和均衡器節點,將它們連接在一起,並在將它們加載到內存中之後開始播放一些聲音文件。

如果iPod EQ AU沒有做到您想要的功能,您可以構建自己的AudioUnit並稍後進行替換,但這需要一些DSP知識。你也可以找到一些已經實現爲音頻單元的開源均衡器(這是在Mac平臺上用於音樂製作工具的通用格式)。

+0

我建議你看看NVDSP:https://github.com/bartolsthoorn/NVDSP它允許你在沒有DSP知識的情況下對原始樣本執行雙二階濾波器。 (Novocaine不是必需的,但推薦) – bartolsthoorn

+0

Hi @ richardolsson,我已經試過這種方式,它適用於本地歌曲,但不適用於流式歌曲,我的問題是我們不能使用相同的方式獲得至少iPod EQ效果? – Infaz

0

不,沒有框架可用於此。我認爲不提供這種框架背後的原因是,均衡和設置低音,經典等模式不是所有使用音頻服務的應用程序可能需要的通用功能。那些需要實施它們的人。

1

不,你沒有辦法在AVAudio Player中獲得直接設置/均衡器設置。

這是Apple提供的一個框架,所有你可以訪問的只是你在課堂參考中獲得的所有東西。

所以我想通過課堂參考,沒有點說它可以訪問均衡器設置。

這是它的鏈接。

http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

希望這有助於。

EDIT-1

如果你想用它給你設置了廣泛的訪問和甚至可以給聲音效果,即使是DJ會被那麼你可以使用

感到高興一些其他圖書館

BASS Audio Library

這是一個付費庫,但它是值得購買的,如果你真的想好了,有效的聲音效果,並獲得所有設置。

+0

感謝Parth Bhatt,您可以幫助我獲取示例代碼中的「獲取可用於播放級別測量的數據」鏈接..或示例代碼使用「AVSampleRateKey」或「AVEncoderBitRateKey」,以便我可以分析音頻率? – DShah

+1

@DShah:所有這些方法都適用於音頻電平測量。所以它獲得有限的設置。以下是您可以在鏈接中引用的方法:'meteringEnabled property' ' - averagePowerForChannel:' ' - peakPowerForChannel:' ' - updateMeters'。 –

1

如果您正在使用音頻隊列或remoteIO音頻單元進行音頻處理,您可以編寫並使用您自己的DSP濾波器來處理和均衡音頻樣本數組或緩衝區。級聯或並聯的IIR濾波器組是一種可能性。 FFT重疊添加/保存濾波是另一種可能的DSP技術,它將允許自定義均衡曲線。

+0

有點複雜瞭解... – DShah

+0

這是因爲它是一個「複雜」的主題。要麼你學習了很多DSP(數學和編碼),或者聘請專家,或者在某處找到一個圖書館(可能是商業許可證)。沒有內置的公共API。 – hotpaw2

相關問題