iOS:当前 AVAudioPlayer 的 AudioUnit

Posted

技术标签:

【中文标题】iOS:当前 AVAudioPlayer 的 AudioUnit【英文标题】:iOS: AudioUnit of current AVAudioPlayer 【发布时间】:2015-09-30 11:49:05 【问题描述】:

我正在开发一个使用 AVAudioPlayer 播放音频文件的应用程序。效果很好,但现在我想添加 均衡器预设.我已经从这段代码中得到了所有的预设值

AudioUnitGetProperty(AudioUnit instance, kAudioUnitProperty_FactoryPresets, kAudioUnitScope_Global, 0, &mEQPresetsArray, &size);

我可以使用以下行更改音频单元属性

AUPreset *aPreset = (AUPreset*)CFArrayGetValueAtIndex(EQPresetsArray, 7);
AudioUnitSetProperty(AudioUnit instance, kAudioUnitProperty_PresentPreset, kAudioUnitScope_Global, 0, aPreset, sizeof(AUPreset));

但问题是我无法获取当前播放器/AVAudioPlayer 实例的 AudioUnit。

这个任务有简单的解决方案吗?

提前致谢!!!!

【问题讨论】:

有以下方法: extern OSStatus AUGraphAddNode( AUGraph inGraph,const AudioComponentDescription * inDescription,AUNode * outNode) 添加节点。有没有获取当前节点? 这样做的唯一方法是不使用 AVAudioPlayer,而是使用资产或文件阅读器和音频单元创建自己的音频播放器。 感谢 Nicholson 的回复。但实际上我已经使用 AVAudioPlayer 完成了播放器的所有功能。如果我们获得当前的 AUNode 或 AudioUnit,这将非常有帮助或节省大量时间。 我们可以将设置>music>eq 预设值应用到我的应用 AVPlayer。我们必须在应用中设置任何设置吗? 【参考方案1】:

您可以退一步使用 AVPlayer,然后添加一个 MTAudioProcessingTap.Example Code Here

【讨论】:

以上是关于iOS:当前 AVAudioPlayer 的 AudioUnit的主要内容,如果未能解决你的问题,请参考以下文章

iOS6 AVAudioPlayer - AAC音频文件的持续时间总是返回0。

查看avaudioplayer的当前播放时间

AVAUdioPlayer - 更改当前 URL

使用 AVAudioPlayer 当前播放歌曲的艺术作品

AVAudioPlayer 重置当前播放的声音并从头开始播放

iOS:AVAudioPlayer 只能播放一个文件吗?