Android 小游戏添加音效

最近写了一个2048小游戏,想给它添加一点小音效。
Android添加音效的一种方法,主要用到的是SoundPool类:
1.首先需要有一个音频文件,.mp3格式或者.wav格式都ok。然后在res文件夹下面再建立一个名为raw的文件夹,将音频文件放在里面。注意音频文件命名格式,开头不能是数字,不能为大写字母。
2.在MainActivity中先声明变量,在这里不一定要为public类型,可以是private或者默认类型:

public SoundPool soundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
    public HashMap<Integer, Integer> soundMap = new HashMap<Integer, Integer>();

3.在oncreate方法下面加上以下代码,这里的game_music和game_music_background都是音频文件的名字。

soundMap.put(1, soundPool.load(this, R.raw.game_music, 1)); 
        soundMap.put(2, soundPool.load(this, R.raw.game_music_background, 1));

4.接下来就可以在需要加上音效的地方加上以下代码。这里的this指的是MianActivity对象。

this.soundPool.play(this.soundMap.get(1), 1, 1, 0, 0, 1);

5.如果需要在其他类中调用的话,那就需要将MianActivity对象传过去了,当然不考虑很严谨的情况下,可以把变量soundPool和soundMap声明为public类型。然后再MainActivity中添加以下代码:

private static MyGameActivity mainActivity = null;
    //可以在外界访问MyGameActivity
    public MyGameActivity(){
        //MyGameActivity一旦被构建,就给mainActivity赋值,就可以从外界访问
        mainActivity = this;
    }

    //用来传递MyGameActivity对象
    public static MyGameActivity getMyGameActivity(){

        return mainActivity;

    }

这样从另一个类中添加音效的话,我们只需要写上:

MyGameActivity.getMyGameActivity().soundPool.play(MyGameActivity.getMyGameActivity().soundMap.get(1), 1, 1, 0, 0, 1);

下面是Android官方的API文档,可以自行查看SoundPool的用法
http://www.android-doc.com/reference/android/media/SoundPool.html

你可能感兴趣的:(s)