我正在构建一个应用程序,它涉及在应用均衡(EQ)效果时播放用户音乐库中的歌曲。我以前只使用AudioUnits
生成声音,所以我遇到了一些麻烦。
我目前的计划是使用AVAssetReader
来获取样本,虽然我对此有点模糊,但我的问题是关于Apple使用的正确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 :(得分:1)
我认为您需要使用带有渲染回调函数的仅输出。回调函数应负责读取/解码音频数据,并应用EQ效果。
顺便说一下,我不知道这是否有用,但是here它表示你已经可以使用已经存在的EQ音频单元。