我正在寻找在 Android 中以类似于 Windows 编程中的 waveOutOpen
系列方法的方式播放内存中音频的方法。
waveOut...
方法实质上让应用程序创建样本值数组(如内存中没有 header 的 WAV 文件)并将它们转储到队列中以进行顺序播放。 Windows 从一个数组无缝过渡到另一个数组,因此只要应用程序在播放前不断将数组转储到队列中,程序就可以创建和播放任意长度的连续音频。 Windows API 还包含一个回调机制,应用程序可以使用该机制来指示进度和加载额外的缓冲区。
据我所知,Android 音频 API 允许应用程序播放来自本地存储或 URL 或内存流的文件。有什么方法可以让 Android 系统“排队”MediaPlayer.start()
调用,以便一个播放器在播放完成后(无故障)过渡到下一个播放器? Jet
似乎做了类似的事情,但只是使用了它自己的内部合成引擎。
是否有任何其他方式以 waveOutOpen
方式访问 Android 音频?
最佳答案
android.media.AudioTrack
... 是您可能正在寻找的类(class)。
创建它后,您只需使用以下方法向其提供给定格式的二进制数据:
AudioTrack.writeTo(...)
关于android - 适用于 Android 的低级音频 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436938/