IOS:如何在Swift中增加AVAudioPlayer的低音和高音?

时间:2016-12-12 05:20:22

标签: ios swift avplayer equalizer

  1. 任何人都知道如何增加曲目的低音和高音?

  2. 在同一曲目中,如果我分成3个部分,我可以调整&有3个不同级别的混响,即每个部分一个?

  3. 由于

2 个答案:

答案 0 :(得分:2)

我不认为可以使用AVAudioPlayer的EQ效果。

快速搜索从StackOverflow给出了这样的答案:

can I use AVAudioPlayer to make an equalizer player?

或Apple开发者论坛中这个遗憾无疑的问题:

https://forums.developer.apple.com/thread/46998

相反

您可以做的是使用AVAudioEnginehttps://developer.apple.com/reference/avfoundation/avaudioengine),这使您有机会向AVAudioPlayer节点添加EQ node(或其他效果节点) 。

AVAudioEngine起初可能看起来令人生畏,但可以将其视为调音台。您有一些生成声音的输入节点(例如AVAudioPlayer个节点),然后您可以将这些注释附加并连接到AVAudioEngineAVAudioEngine有一个AVAudioMixerNode,因此您可以控制音量等内容。

在您的输入节点和调音台之间,您可以附加效果节点,例如EQ节点,如果需要,您可以添加“点击”并将最终输出记录到文件中。

阅读材料

This slideshare introduction帮助我理解了AVAudioEngine是什么(代码是目标C,但它应该是可以理解的)

2014年WWDC的AVAudioEngine in Practice也是一个很好的介绍。

所以,我希望你不要被上面的内容吓到,正如所说的那样,一开始看到它可能看起来令人生畏,但是一旦你将它连接在一起它就能正常工作并且你可以选择添加其他效果而不仅仅是EQ(音高变换,减慢文件速度等)。

希望对你有所帮助。

答案 1 :(得分:1)

不幸的是,它不允许您流式传输远程 URL。解决此问题的唯一方法是下载曲目,使用音频服务 API 将其从 mp4 或 m4a 转换为 LPCM 格式,然后安排一个缓冲区以通过音频引擎运行。另一方面,AVPlayer 允许您流式传输远程媒体,但很难附加和均衡到它……您可以查看 MpAudioProcessingTap,但它也仅适用于本地文件。

有一篇很好的文章可以通过 AVAudioEngine here