0

我正在使用 Superpowered SDK 构建 Android 数码钢琴。

我为每个音调使用SuperpoweredAdvancedAudioPlayer实例(例如 c 音调、d 音调、e 音调......)。

为了避免记忆,我想在 SuperpoweredAdvancedAudioPlayer 实例中重复使用音频样本(mp3 文件),并且 - 如有必要 - 将它们调低/调高半音(100 美分)。例如,“E 音”使用 mp3 样本作为“D 音”,并且只提高了 100 分。

如何实现 e 音的 SuperpoweredAdvancedAudioPlayer 实例使用与 d 音相同的音频对象?(我希望 d-tone.mp3 文件只在内存中分配一次)

谢谢!

当前实例化:

player1 = new SuperpoweredAdvancedAudioPlayer(&player1 , playerEventCallback1, samplerate, 0);
player1->open(path, fileAoffset, fileAlength);
4

1 回答 1

1

只需对 SuperpoweredAdvancedAudioPlayer 的每个实例使用 open 方法。播放器实例不会使用大量内存。如果该解决方案不够好,则使用 SuperpoweredDecoder 解压缩原始声音,并使用 SuperpoweredTimeStretching 的多个实例来进行音高变化。当然这个版本需要更多的代码。

于 2017-03-03T02:10:20.723 回答