我有一个简单的MenuScene
,我想添加背景音乐,但在设置音频源并在我的音乐对象上调用播放后,我没有音频。在logcat中我收到此错误
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
答案 0 :(得分:0)
在进入场景之前,必须在onLoadResources()方法中加载所有资源(如声音,音乐,纹理),因为这些资源需要一些时间来加载。 因此将loadMenuAudio()方法放在onLoadResources()中并在uiThread上运行此方法。 即..
runOnUiThread(new Runnable() {
@Override
public void run() {
loadMenuAudio();
}
});