Останавливается воспроизведение музыки андроид

Останавливается воспроизведение музыки андроид

Используйте Soundpool вместо этого. SoundPool может воспроизводить несколько потоков одновременно на разных томах, скоростях и циклах. MediaPlayer не предназначен для обработки игрового аудио.

У меня есть 2 игры, опубликованные на рынке, и оба используют SoundPool и не имеют проблем.

здесь эти две функции взяты прямо из моей игры.

public static void playSound(int index, float speed)  {        float streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);       streamVolume = streamVolume/mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);       mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, speed);  }  public static void playLoop(int index, float speed)  {        float streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);       streamVolume = streamVolume/mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);       streamVolume = streamVolume/3f;       mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, -1, speed);  }  

это как легко. Чтобы более внимательно рассмотреть это, я использую только playLoop() для воспроизведения фоновой музыки, поэтому я уменьшаю громкость на нем, но вы можете легко изменить код, чтобы вручную устанавливать громкость каждый раз, когда вы играете.

также

 mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, -1, speed);  

первый аргумент mSoundPoolMap.get (индекс) является просто контейнер, содержащий все мои звуки. Я назначаю каждому звуку конечное число, такое как

final static int SOUND_FIRE = 0, SOUND_DEATH = 1, SOUND_OUCH = 2;  

Я загружаю эти звуки в эти положения и воспроизвожу их с них. (помните, что вы не хотите загружать все свои звуки каждый раз, когда вы его запускаете, просто загрузите их один раз.) Следующие два аргумента: объем влево/вправо, приоритет, а затем -1, чтобы установить цикл.

mSoundPool = new SoundPool(8, AudioManager.STREAM_MUSIC, 0);  

Это устанавливает мой soundpool в 8 потоков. другой — тип источника, а затем качество.

получайте удовольствие!



Источник: stackoverrun.com


Добавить комментарий