Android MediaPlayer 导致游戏卡住并显示 "AudioHardware pcm playback is going to standby"

标签 android media-player pcm

这是一个艰难的过程:/

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

每次发生这种情况时,我都会在 logcat 中看到“AudioHardware pcm playback is going to standby”错误。

谷歌搜索让我得出结论

  • 这可能是 HTC Hero 特有的问题(无法在模拟器或其他设备上重现)
  • 当 MediaPlayer 的 http 流速度不够快时,通常会记录此消息
  • Android 中的音频一般都很糟糕

因为我已经使用 NDK + libmpg123 解码 mp3 以进行音频分析,所以我还不如自己播放音频(在 NDK C 代码和 Java 中的 AudioTrack 之间使用一个非常丑陋的接口(interface))。

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

我感谢每一个提示!

最佳答案

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

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

关于Android MediaPlayer 导致游戏卡住并显示 "AudioHardware pcm playback is going to standby",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293223/

相关文章:

android - 以编程方式按下另一个应用程序 Activity 中的按钮

android - GridView 内的 ImageButton 不可点击

android - 录制的视频无声播放

iOS:播放电影时模拟搜索栏上的拖动事件

Android:通过代码动态关闭虚拟键盘?

android - 更改抽屉图标背靠背箭头

iphone - 使用 SCListener 监听 iPhone 麦克风并同时播放音乐 : how?

audio - 带有 fmod 的 PCM 数据格式 - 多个平台上的差异

c# - 如何读取 IMediaSample 24 位 PCM 数据

c# - 有没有办法在C#中播放CCITT u-Law .wav文件?