Intereting Posts
OutOfMemory Exception: сжатие изображений уменьшит размер кучи? Как gradle обрабатывает несколько модулей с различными версиями библиотеки поддержки v4? NFC Offhost маршрутизирует UICC на Nexus 5X и Nexus 6P Как получить информацию о файле, который передается через Bluetooth, Wi-Fi в Android Ошибка автокомплектаText, чтобы получить повторяющиеся значения в списке? Можно ли запросить DownloadManager в потоке пользовательского интерфейса? CookieManager и CookieSyncManager не синхронизируют файлы cookie с веб-просмотром в ICS (работает на всех предыдущих уровнях API) Приложение получает дублирующее уведомление с использованием GCM после повторной установки Android – Как загрузить данные в фоновом режиме в указанное время Android GPS ACCURACY_HIGH вызывает принудительное закрытие? WebRTC переключается обратно на переднюю камеру с gUM не потоковым на Android / Chrome Как изменить цвет CheckBox? RegisterBroadcastReceiver в настройке Manifest.xml или исходным кодом реализации SearchClick OnCloseListener не работает CardView потерял преимущество при раздувании

Android-плеер Android возвращает IllegalStateException

У меня есть следующий код для воспроизведения небольших аудиофайлов

private void playVoice() { if (mPlayVoice != null) { if (mPlayVoice.isPlaying()) { mPlayVoice.release(); mPlayVoice = null; } } mPlayVoice = MediaPlayer.create(BirdsActivity.this, mSoundIds[getCurrentIndex()]); mPlayVoice.start(); } 

Он отлично работает на вкладке Samsung galaxy, но дает меньше ошибок на маленьком устройстве (я проверил в Sony xperia mini pro мой проект)

 08-17 12:45:45.232: ERROR/AndroidRuntime(6639): java.lang.IllegalStateException 08-17 12:45:45.232: ERROR/AndroidRuntime(6639): at android.media.MediaPlayer.isPlaying(Native Method) 08-17 12:45:45.232: ERROR/AndroidRuntime(6639): at com.android.mds.kidsapps.alphakids.BirdsActivity.playVoice(BirdsActivity.java:146) 

Solutions Collecting From Web of "Android-плеер Android возвращает IllegalStateException"

Вы делаете это:

  PlayVoice.release(); 

Вы не имеете в виду

  mPlayVoice.release(); 

Если у вас есть другие проблемы, это лучший документ для консультаций:

Android MediaPlayer

РЕДАКТИРОВАТЬ

Хорошо, если вы здесь: isPlaying () Недопустимые состояния, которые показывают, что вы пытаетесь вызвать isPlaying (), когда игрок находится в состоянии ошибки. Поэтому вам нужно выяснить, почему он уже находится в состоянии ошибки.

В общем, некоторая операция управления воспроизведением может завершиться неудачно из-за различных причин, таких как неподдерживаемый формат аудио / видео, плохо перемежающийся звук / видео, слишком высокое разрешение, тайм-аут передачи и тому подобное.

Взгляните на добавление прослушивателя ошибок: setOnErrorListener ()

Используйте следующий код, поскольку я столкнулся с тем же исключением.

 try { if(mPlayVoice!=null && mPlayVoice.isPlaying()) { Log.d("TAG------->", "player is running"); mPlayVoice.stop(); Log.d("Tag------->", "player is stopped"); mPlayVoice.release(); Log.d("TAG------->", "player is released"); } } catch(Exception e){ } 

Здесь пишите все, что хотите. Фактически проверка состояния, такая как isPlaying() или проверка на null, генерирует исключение IllegalStateException …..

Возможно, вам придется очистить аудиогруппу, связанную с аудио-потоком. Шахта работала со следующим кодом:

 public static void audioPlayCaptureStop() { try { if(audioStream.isBusy()) { audioGroup.clear(); audioStream.release(); System.out.println("audioStream released"); } } catch (Exception e) { System.out.println("audioStream release exception: "+e.toString()); } }