我刚刚编写了从AndExample复制的以下行。
try {
this.collision_sound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(), this, "touch.ogg");
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
Log.d("Error","in creation "+e);
}
this.collision_sound.play();
现在的问题是,当我播放声音时,它会给我一个空指针异常。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
您的代码似乎没问题。尝试将createsound函数放在AndEngine的onLoad()方法中,并在另一个地方调用play()方法。我想你没有给引擎设置声音变量的时间。
答案 1 :(得分:1)
最后我明白了问题所在。实际上上面的代码是正确的,我错过的是当我创建引擎时我错过了为负载引擎中的声音设置选项,如。
new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera).setNeedsSound(true));
这解决了我的问题我错过了.setNeedsSound(true)选项。