2014-12-03 3 views
1

Я понял, что MediaPlayer на Android 4.4.2, похоже, автоматически исчезает в Audiofile. Я использую MediaPlayer для воспроизведения звука, который не должен исчезать. Он хорошо работал с Smarthpone с 4.2.1, но на другом телефоне с 4.4.2 происходит Fading.Java Android: Mediaplayer автоматически исчезает

Я также посмотрел на SoundPool, но он пропускает функцию, позволяющую мне знать, продолжает ли файл.

Могу ли я отключить автоматическое затухание или мне нужно использовать Soundpool и следить за длиной трека самостоятельно?

Спасибо, VanDahken

+0

Какой тип AUDIO_STREAM e вы указываете при использовании MedialPlayer? – dasar

+0

Я пробовал STREAM_MUSIC и STREAM_NOTIFICATION. – VanDahlen

ответ

0

Вы можете попробовать setAudioAttributes(AudioAttributes attributes) перед запуском игры.

atrs = new AudioAttributes.Builder() 
      .setUsage(AudioAttributes.USAGE_MEDIA) 
      .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) 
      .build(); 

Попробуйте сыграть с CONTENT_TYPE.

0

У меня такая же проблема. Хорошо, что он работал на пару других версий Android, поэтому, надеюсь, только 4.4.2 имеет проблему. Моим первым решением, которое я обнаружил, было использование несжатого музыкального файла ... (.wav с форматом данных LEI16), но музыкальный файл был слишком большим.

Я также обнаружил, что затухание, похоже, не происходит, если вы установили тип аудиопотока STREAM_RING, но это, вероятно, не очень хорошая идея, поскольку это предназначено для телефонных звонков.

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

-prepareAsync() в начале интро

-Тогда, когда готовили, SetVolume() для 0f и начать()

-Тогда, после небольшой задержки (для моего случая, который заканчивает тем, что через несколько секунд: время, необходимое для вступления в приложениях для завершения), добавьте искать слушатель, и seekTo (0)

- когда поиск завершен, установите громкость на желаемое значение