android - Android 在特定频率上生成 Shepard Tone
问题描述
任何人都可以建议是否可以在 Android 平台上以编程方式生成 Shepard Tone/Scale?
我目前唯一的解决方案是raw files.wave
使用MediaPlayer
.
解决方案
是的,这绝对是可能的。
MediaPlayer
正如您可能已经发现的那样,它适合播放媒体。预先录制的、流式传输的,无论如何,但总是来自外部来源的一些媒体。
但是,您正在寻找的是一种合成原始 PCM 声音并将其在内存中流式传输到扬声器的方法。为此,请查看AudioTrack类。
只需进行数学运算,将音频样本数据写入缓冲区(例如short[]
数组),然后将数据写入AudioTrack
. 最后,AudioTrack#play
.
推荐阅读
- nomachine-nx - 使用 @nrwl/web:package 编译时获取 css 文件
- json - 如何在不附加 jq 命令的情况下始终使用 jq 很好地显示 json 输出
- php - SQL查询从数据库中的一个表中获取所有帖子,但来自特定用户的最多5个条目?
- python - Module Not Found Error with one version of of Python, but no the other
- python - KivyMD | 列表项打印其“文本”on_press
- python - 更高效的 Django (SQL) 查询
- c++ - 将 std::enable_if 与外联成员函数和模板化静态成员条件一起使用
- r - 为什么权限被拒绝从 R 写入此文件?
- java - jersey 单路径多类实现(以编程方式选择一个实例)类似于条件依赖注入
- typescript - 如何创建一个部分应用另一个函数的泛型的函数