2

我正在创建一个应用程序,该应用程序需要每隔约 25 毫秒播放一个或多个声音。(每分钟 300 拍,每拍可能有 8 次“播放”)

起初我使用 SoundPool 来完成这个。我有 3 个线程。一种是更新 SurfaceView 动画,一种是使用 System.nanoTime() 更新时间,另一种是使用 Soundpool 播放声音(mp3)。

这可行,但似乎使用了大量的处理器能力,因为任何时候运行后台进程(例如 WiFi 重新扫描或 GC),它都会开始在这里和那里跳过节拍,这是不可接受的。

我正在寻找替代解决方案。我看过混合和 JET 引擎。

JET 引擎似乎不是一个解决方案,因为它只使用 MIDI。我的应用程序需要高质量的声音(来自实际乐器的录音)。(如果我错了 midi 质量不高,请纠正我)

Android 的混音似乎非常复杂,因为首先您必须获得原始声音(占用大量内存)并在声音之间创建“静音”。我不确定这是否是最优雅的解决方案,因为我的应用程序将具有由用户控制的变速 (bpm)。

如果有人在这方面有经验,我将非常感谢任何建议。

谢谢

4

0 回答 0