适用于Android的低级音频API

时间:2010-08-09 02:07:39

标签: android audio

我正在Android中寻找某种方式来播放内存中的音频,其方式类似于Windows编程中的waveOutOpen系列方法。

waveOut...方法基本上允许应用程序创建样本值数组(如没有标题的内存中WAV文件),并将它们转储到队列中以进行顺序回放。 Windows从一个阵列无缝转换到下一个阵列,因此只要应用程序在播放之前将阵列转储到队列中,程序就可以创建并播放任意长度的连续音频。 Windows API还包含一个回调机制,应用程序可以使用该机制来指示进度并加载其他缓冲区。

据我所知,Android音频API允许应用程序从本地存储或URL或内存流播放文件。有没有办法让Android“排队”MediaPlayer.start()个电话,以便一个播放器在播放完成时转换(没有毛刺)到下一个播放器?似乎Jet做了类似的事情,但只有它自己的内部合成引擎。

是否有其他方式以waveOutOpen方式访问Android音频?

1 个答案:

答案 0 :(得分:10)

android.media.AudioTrack

...是您可能正在寻找的课程。

http://developer.android.com/reference/android/media/AudioTrack.html#AudioTrack%28int,%20int,%20int,%20int,%20int,%20int%29

创建它之后,您只需使用以下方法使用给定格式的二进制数据:

AudioTrack.writeTo(...)