2016-06-16 5 views
0

Я делаю маленькую игру, и когда вы закончите музыку, Теперь у меня есть один звук и хотелось бы, чтобы у вас было 3 или 4, которые воспроизводятся случайным образом, поэтому каждый раз, когда вы заканчиваете, вы слышите различную музыку. У меня есть SoundManager.java гдеСлучайный музыкальный проигрыватель, когда выигрывает в игре

public static final int SOUND_WINNER = 4; 
public static final int SOUND_LOSER = 5; 
public static final int SOUND_WINNER2 = 6; 
public static final int SOUND_WINNER3 = 7; 

, а также

public static void initSounds(Context theContext) { 
    mContext = theContext; 
    mSoundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 0); 
    mSoundPoolMap = new HashMap<Integer, Integer>(); 
    loopedSoundMap = new HashMap<Integer, Integer>(); 
    mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);  

    addSound(SOUND_WINNER, R.raw.win); 
    addSound(SOUND_LOSER, R.raw.lose); 
    addSound(SOUND_WINNER2, R.raw.win2); 
    addSound(SOUND_WINNER2, R.raw.win3); 

В игровой деятельности я ставлю

private void win(){ 
    SoundManager.playLoopedSound(SoundManager.SOUND_WINNER); 

Спасибо заранее за любые советы.

Я пытался сделать что-то подобное, но без успеха

private void win(){ 
    Random random=new Random(); 
    int r = random.nextInt(4); 
    if(r==0){ 
    SoundManager.playLoopedSound(SoundManager.SOUND_WINNER); 
    } 
    if(r==1){ 
    SoundManager.playLoopedSound(SoundManager.SOUND_WINNER2); 
    } 

ответ

0

Этот метод работает формировать меня playRaw(_this, R.raw.fail), он также должен работать для вас.

private static void playRaw(Context _this, int resource) { 
    PREFS = PreferenceManager.getDefaultSharedPreferences(_this); 
    if (PREFS.getBoolean("SOUND_IN_GAME", true) == false) { 
     return; 
    } 
    MediaPlayer mMediaPlayer = MediaPlayer.create(_this, resource); 
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mMediaPlayer.setLooping(false); 
    mMediaPlayer.start(); 
} 

Строки, приведенные ниже, позволяют создавать настройки, которые позволяют включать/выключать звуки. Вы можете удалить его.

PREFS = PreferenceManager.getDefaultSharedPreferences(_this); 
if (PREFS.getBoolean(Global.soundInMatch, true) == false) { 
    return; 
} 

В вашем случае, вы можете также включить зацикливание пометка

mMediaPlayer.setLooping(true);