0

我正在尝试使用变调滤波器实现一个简单的鼓垫机应用程序。我正在使用AVAudioEngine API

应用程序中有12 个打击垫。每个打击垫都有自己的类和自己的AVAudioPlayerNode。当没有连接其他过滤器时,该应用程序运行得非常快。几乎没有任何延迟。
但是当我尝试将AVAudioUnitTimePitch附加到链上时,CPU使用率上升到 100%,并且应用程序在初始化后挂起。在iPad3上进行了测试。

此代码适用于每个 Pad 初始化。

_playerNode = [[AVAudioPlayerNode alloc] init];
_pitchFilter = [[AVAudioUnitTimePitch alloc] init];

[_audioEngine attachNode:_playerNode];
[_audioEngine attachNode:_pitchFilter];

[_audioEngine connect:_playerNode to:_pitchFilter format:_buffer.format];
[_audioEngine connect:_pitchFilter to:_audioEngine.mainMixerNode format: _buffer.format];

有没有办法以某种方式减少 CPU 使用率?

PS 另外我在iPad Air上测试了这个应用程序。它有效。但是 CPU 使用率仍然很高:初始化后为25-30% 。播放音频时大约50% 。

4

1 回答 1

0

你在这里做了很多处理......尝试降低采样率、通道数或位深度。AFAIK 没有办法更改 AVAudioEngine 的缓冲区大小。

于 2016-05-24T05:26:01.643 回答