2014-02-17 99 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音频单元,你可以使用。