4

这是困难的一个 :/

我正在制作一款基于音乐的 Android 游戏,比如 Audiosurf。除了在歌曲结束前几秒钟(使用普通 MediaPlayer 播放)音乐突然停止并且整个游戏(包括 UI)冻结几秒钟外,它工作得很好。

每次发生这种情况时,我都会在 logcat 中看到“AudioHardware pcm 播放将进入待机状态”-错误。

谷歌搜索使我得出的结论是

  • 这可能是 HTC Hero 特定问题(无法在模拟器或其他设备上复制)
  • 当 http 流对于 MediaPlayer 来说不够快时,通常会记录此消息
  • Android中的音频通常很糟糕

由于我已经使用 NDK + libmpg123 对 mp3 进行解码以进行音频分析,因此我不妨自己播放音频(在 NDK C 代码和 Java 中的 AudioTrack 之间使用非常丑陋的接口)。

是否有针对此错误的修复/解决方法,或者我真的应该这样做吗?(我只剩下有限的时间来完成这个项目)

我感谢每一个提示!

4

1 回答 1

0

当您在 C 代码中缓冲所有音乐时,您可能会停止播放音乐。由于它AudioTrack有延迟,您可能需要等待更长时间才能完成。

不过,我需要有关您的代码的更多详细信息来提供帮助。

于 2011-03-13T21:19:29.447 回答