是否有庫函數來規範化聲音文件?我搜查了四周,但找不到任何。正常化音頻文件obj-c
我想能夠正常化一個聲音文件並將其設置到聲音文件中,因此只需要一次而不是實時進行。
這可以通過Core-Audio完成嗎?
是否有庫函數來規範化聲音文件?我搜查了四周,但找不到任何。正常化音頻文件obj-c
我想能夠正常化一個聲音文件並將其設置到聲音文件中,因此只需要一次而不是實時進行。
這可以通過Core-Audio完成嗎?
是的,它可以完成,但不是一個單一的函數調用。
您想要的功能實際上並不是CoreAudio,而是ExtendedAudioFile.h
- AudioToolbox
框架的一部分。這適用於iOS和MacOSX。我可以證明這很難找到。
該標題中感興趣的功能是ExtAudioFileOpenURL()
,ExtAudioFileRead()
和ExtAudioFileWrite()
。
在大綱你做什麼:
ExtAudioFileOpenURL()
打開輸入文件使用ExtAudioFileGetProperty()
與屬性ID kExtAudioFileProperty_FileDataFormat
獲得AudioStreamBasicDescription描述文件。
可能將ASBD設置爲您想要的格式。 MacOSX上的AudioToolBox似乎比iOS更適合這一點。
計算分配大到足以容納整個音頻文件
一個緩衝閱讀與ExtAudioFileRead()
整個文件 - 注:此調用可能不讀這一切一氣呵成 - 在大致相同的是因爲工作POSIX read()
執行規範化
ExtAudioFileCreateWithURL()
創建輸出文件ExtAudioFileWrite()
寫的歸一化樣本。該文檔鏈接到幾個示例項目,可以充當工作代碼的捐助者。你會發現,將樣本作爲浮點數進行歸一化要容易得多,但在iOS中,我無法自動使轉換工作,所以你可能必須格式化自己。
謝謝,請看看這個。 – jarryd