我有一个简单的MenuScene
,我想在其中添加背景音乐,但是在设置音频源并在音乐对象上调用播放后,我没有得到音频。在日志中,我收到此错误
W/AudioTrack﹕ obtainBuffer timed out (is the CPU pegged?) 0xb96465f8 name=0x3user=00001ce0, server=00000c60
09-13 21:17:36.037 102-322/? W/AudioFlinger﹕ write blocked for 9946 msecs, 10 delayed writes, thread 0xb9628c00
我的代码:
private void loadMenuAudio() {
MusicFactory.setAssetBasePath("sound/");
try {
mMusic = MusicFactory.createMusicFromAsset(engine.getMusicManager(), activity, "sure.wav");
mMusic.play();
mMusic.setLooping(true);
} catch (IOException e) {
Debug.e(e.getMessage());
}
}
菜单显示正常并且正在工作,但我没有得到音频。我已经将needMusic
的引擎选项设置为true
在进入场景之前,您必须在onLoadResources()方法中加载所有资源(如声音,音乐,纹理),因为这些资源需要时间来加载。因此,将 loadMenuAudio() 方法放在 onLoadResources() 中,并在 uiThread 上运行此方法。 即
runOnUiThread(new Runnable() {
@Override
public void run() {
loadMenuAudio();
}
});