天天看點

Android 小遊戲添加音效

最近寫了一個2048小遊戲,想給它添加一點小音效。

Android添加音效的一種方法,主要用到的是SoundPool類:

1.首先需要有一個音頻檔案,.mp3格式或者.wav格式都ok。然後在res檔案夾下面再建立一個名為raw的檔案夾,将音頻檔案放在裡面。注意音頻檔案命名格式,開頭不能是數字,不能為大寫字母。

2.在MainActivity中先聲明變量,在這裡不一定要為public類型,可以是private或者預設類型:

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

3.在oncreate方法下面加上以下代碼,這裡的game_music和game_music_background都是音頻檔案的名字。

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

4.接下來就可以在需要加上音效的地方加上以下代碼。這裡的this指的是MianActivity對象。

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;

    }
           

這樣從另一個類中添加音效的話,我們隻需要寫上:

下面是Android官方的API文檔,可以自行檢視SoundPool的用法

http://www.android-doc.com/reference/android/media/SoundPool.html

s a

繼續閱讀