首页 > 解决方案 > Android 在特定频率上生成 Shepard Tone

问题描述

任何人都可以建议是否可以在 Android 平台上以编程方式生成 Shepard Tone/Scale?

我目前唯一的解决方案是raw files.wave使用MediaPlayer.

标签: android

解决方案


是的,这绝对是可能的。

MediaPlayer正如您可能已经发现的那样,它适合播放媒体。预先录制的、流式传输的,无论如何,但总是来自外部来源的一些媒体。

但是,您正在寻找的是一种合成原始 PCM 声音并将其在内存中流式传输到扬声器的方法。为此,请查看AudioTrack类。

只需进行数学运算,将音频样本数据写入缓冲区(例如short[]数组),然后将数据写入AudioTrack. 最后,AudioTrack#play.


推荐阅读