我在 stackoverflow 和其他页面上阅读了很多关于此主题的问题,但没有找到真正的最新解决方案:
在 Android 应用程序中,我有两个音频文件(本地文件系统),它们以 mp3、ogg 或 wav 编码。我只想完全同步地播放它们,寻找可能性并控制每首曲目的音量。由于 Android 中众所周知的延迟问题,因此无法使用 MediaPlayer。所以我认为拥有两个 Audio-Player-Instances (无论库)总是会导致糟糕的延迟,所以它似乎不是解决方案。
所以在我看来,唯一的解决方案是将音频输入混合在一起,形成一个可以由一个播放器播放的混合输入。我阅读了很多关于 Androids AudioTrack 和缓冲区以及 OpenSL ES 实现的内容,但总是以通知结束:缓冲区仅支持 PCM 原始音频数据。好的,所以我必须自己解码 mp3/ogg?
我现在的问题是:是否有任何库可以帮助我 a) 使用简单的 API 完成我想要的操作,或者 b) 将 mp3/ogg 解码到内存以使用 AudioTrack 或 OpenSL 的数据?
如果它是本机的或 Java 不重要,它只需要工作。最低 API 级别为 15+(Android 4.0.3,创建此问题时的最新版本)。