AndEngine播放音乐和音效
缺少背景音乐和音效的游戏是不完整的。
首先定义两个变量,一个用来播放背景音乐,一个用来播放音效
[java]
private Music mMusic;
private Sound mSound;
AndEngine中播放声音需要在onCreateEngineOptions()方法里先进行声明
[java]
final EngineOptions engineOptions = new EngineOptions(true,
ScreenOrientation.PORTRAIT_FIXED,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
camera);
// 声明程序要使用背景音乐
engineOptions.getAudioOptions().setNeedsMusic(true);
// 声明程序要使用音效
engineOptions.getAudioOptions().setNeedsSound(true);
在onCreateResources()方法中加载音乐和音效资源
[java]
MusicFactory.setAssetBasePath("mfx/");
try {
this.mMusic = MusicFactory.createMusicFromAsset(this.mEngine.getMusicManager(),
this, "lx.mp3");
this.mMusic.setLooping(true);
} catch (final IOException e) {
Debug.e(e);
}
SoundFactory.setAssetBasePath("mfx/");
try {
this.mSound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(),
this, "click.ogg");
} catch (final IOException e) {
Debug.e(e);
}
我将音乐和音效的使用方法放在了屏幕的点击事件里
[java]
scene.setOnSceneTouchListener(new IOnSceneTouchListener() {
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.isActionUp()) {
if (!MainActivity.this.mMusic.isPlaying()) {
MainActivity.this.mSound.play();
MainActivity.this.mMusic.play();
} else {
MainActivity.this.mMusic.pause();
}
}
return false;
}
});
经测试mp3和ogg格式的文件都支持。
补充:软件开发 , Java ,