首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

【AndEngine】AndEngine播发音乐和音效

2013-09-05 
【AndEngine】AndEngine播放音乐和音效缺少背景音乐和音效的游戏是不完整的。首先定义两个变量,一个用来播放

【AndEngine】AndEngine播放音乐和音效

缺少背景音乐和音效的游戏是不完整的。

首先定义两个变量,一个用来播放背景音乐,一个用来播放音效

[java] view plaincopy
  1. private Music mMusic;  
  2. private Sound mSound;  

AndEngine中播放声音需要在onCreateEngineOptions()方法里先进行声明

[java] view plaincopy
  1. final EngineOptions engineOptions = new EngineOptions(true,   
  2.                              ScreenOrientation.PORTRAIT_FIXED,   
  3.                              new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),   
  4.                              camera);  
  5. // 声明程序要使用背景音乐  
  6. engineOptions.getAudioOptions().setNeedsMusic(true);  
  7. // 声明程序要使用音效  
  8. engineOptions.getAudioOptions().setNeedsSound(true);  

在onCreateResources()方法中加载音乐和音效资源

[java] view plaincopy
  1. MusicFactory.setAssetBasePath("mfx/");  
  2. try {  
  3.     this.mMusic = MusicFactory.createMusicFromAsset(this.mEngine.getMusicManager(), 
  4. this, "lx.mp3");  
  5.     this.mMusic.setLooping(true);  
  6. } catch (final IOException e) {  
  7.     Debug.e(e);  
  8. }  
  9.   
  10. SoundFactory.setAssetBasePath("mfx/");  
  11. try {  
  12.     this.mSound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(),
  13.  this, "click.ogg");  
  14. } catch (final IOException e) {  
  15.     Debug.e(e);  
  16. }  
我将音乐和音效的使用方法放在了屏幕的点击事件里

[java] view plaincopy
  1. scene.setOnSceneTouchListener(new IOnSceneTouchListener() {  
  2.     @Override  
  3.     public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {  
  4.         if (pSceneTouchEvent.isActionUp()) {                      
  5.             if (!MainActivity.this.mMusic.isPlaying()) {  
  6.                 MainActivity.this.mSound.play();  
  7.                 MainActivity.this.mMusic.play();  
  8.             } else {  
  9.                 MainActivity.this.mMusic.pause();  
  10.             }  
  11.         }  
  12.         return false;  
  13.     }  
  14. });  
经测试mp3和ogg格式的文件都支持。

热点排行