如何在Android上播放合成声音?

时间:2010-10-09 17:49:13

标签: android audio

前段时间我写了一个iPhone程序,以编程方式创建声音。它使用AudioQueue生成声音。使用AudioQueue,我可以在系统需要声音时注册回调,并通过使用原始音频数据填充缓冲区进行响应。缓冲区很小,因此声音可以以合理的低延迟响应用户输入。

我想在Android上做类似的应用,但我不确定如何。 MediaPlayer和SoundPool类似乎是用于从文件播放封装媒体,这不是我需要的。 JetPlayer似乎是某种MIDI播放引擎。

Android Java API中是否有等效的AudioQueue?我是否必须使用本机代码来实现我想要的目标?

感谢。

1 个答案:

答案 0 :(得分:2)

  

使用AudioQueue,我可以在系统需要声音时注册回调,并通过填充原始音频数据的缓冲区进行响应。

Android中与此最接近的类比是AudioTrack。而不是你正在使用的回调(拉)机制,AudioTrack更像是推模型,你可以使用阻塞调用继续写入轨道(可能是在后台线程中)。