0

我有一个简单的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());
    }

}

菜单显示正常并且工作正常,但我没有音频。我已经将引擎选项设置needMusictrue

4

1 回答 1

0

在进入场景之前,您必须在 onLoadResources() 方法中加载所有资源(如声音、音乐、纹理),因为这些资源需要时间来加载。因此,将 loadMenuAudio() 方法放在 onLoadResources() 中并在 uiThread 上运行此方法。IE。

runOnUiThread(new Runnable() {

            @Override
            public void run() {
                loadMenuAudio();                
            }
        });
于 2013-09-13T05:58:39.193 回答