我正在Android中寻找某种方式来播放内存中的音频,其方式类似于Windows编程中的waveOutOpen
系列方法。
waveOut...
方法基本上允许应用程序创建样本值数组(如没有标题的内存中WAV文件),并将它们转储到队列中以进行顺序回放。 Windows从一个阵列无缝转换到下一个阵列,因此只要应用程序在播放之前将阵列转储到队列中,程序就可以创建并播放任意长度的连续音频。 Windows API还包含一个回调机制,应用程序可以使用该机制来指示进度并加载其他缓冲区。
据我所知,Android音频API允许应用程序从本地存储或URL或内存流播放文件。有没有办法让Android“排队”MediaPlayer.start()
个电话,以便一个播放器在播放完成时转换(没有毛刺)到下一个播放器?似乎Jet
做了类似的事情,但只有它自己的内部合成引擎。
是否有其他方式以waveOutOpen
方式访问Android音频?
答案 0 :(得分:10)
android.media.AudioTrack
...是您可能正在寻找的课程。
创建它之后,您只需使用以下方法使用给定格式的二进制数据:
AudioTrack.writeTo(...)