Java.lang.IllegalStateException en el método MediaPlayer.isplaying ()
public static MediaPlayer mp=null; public static void playGeneric(int name, final ImageButton button,final ImageButton pervious,Context context) { button.setEnabled(false); button.setClickable(false); pervious.setEnabled(false); pervious.setClickable(false); try{ if(mp != null && mp.isPlaying()) { mp.stop(); mp.release(); mp = null; mp=MediaPlayer.create(context, name); mp.start(); } else { mp = MediaPlayer.create(context, name); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer arg0) { //mp.prepare(); mp.start(); } }); mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub mp.release(); System.out.println("Object released"); button.setEnabled(true); button.setClickable(true); pervious.setEnabled(true); pervious.setClickable(true); } }); } } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); e.getMessage(); } catch (NullPointerException e) { // TODO Auto-generated catch block e.printStackTrace(); e.getMessage(); } }
Dame java.lang.IllegalStateException en el método mp.isplaying ().
Quiero parar la música si está jugando y toco otra canción una tras otra.
- Cómo obtener una respuesta JSON grande en Android Sybase Unwired Platform
- Problema básico de conversión imperial
- MPAndroidChart no está actualizando
- Contraseña de protección de mi aplicación Android (la forma más sencilla)
- Obtener la dirección del mapa o la dirección de ubicación en Android
Logcat:
10-14 15:12:05.474: E/MediaPlayer(15411): prepareAsync called in state 8 10-14 15:12:05.474: W/System.err(15411): java.lang.IllegalStateException 10-14 15:12:05.474: W/System.err(15411): at android.media.MediaPlayer.prepare(Native Method) 10-14 15:12:05.474: W/System.err(15411): at com.rogerscenter.LearnReadWriteSpell.Utility.Music.playGeneric(Music.java:93) 10-14 15:12:05.474: W/System.err(15411): at com.rogerscenter.LearnReadWriteSpell.LetterCategory.Letter_Lesson1_activity.onCreate(Letter_Lesson1_activity.java:140) 10-14 15:12:05.474: W/System.err(15411): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586) 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 10-14 15:12:05.484: W/System.err(15411): at android.os.Handler.dispatchMessage(Handler.java:99) 10-14 15:12:05.484: W/System.err(15411): at android.os.Looper.loop(Looper.java:123) 10-14 15:12:05.484: W/System.err(15411): at android.app.ActivityThread.main(ActivityThread.java:3647) 10-14 15:12:05.484: W/System.err(15411): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 15:12:05.484: W/System.err(15411): at java.lang.reflect.Method.invoke(Method.java:507) 10-14 15:12:05.484: W/System.err(15411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 10-14 15:12:05.484: W/System.err(15411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 10-14 15:12:05.484: W/System.err(15411): at dalvik.system.NativeStart.main(Native Method)
- Android ClassCastException al recuperar Vista personalizada
- Volley: MultipartRequest.getBody: Escritura de IOException a ByteArrayOutputStream
- Cómo analizar la fecha en formato de fecha simple en localidad árabe?
- ¿Puede un dispositivo bluetooth 4.0 enviar datos a un dispositivo bluetooth 2.0?
- Cómo analizar las matrices json anidadas en un solo objeto en android
- Eclipse utiliza la variable PATH antigua para ejecutar el proceso de línea de comandos en la tarea Gradle?
- ¿Es posible identificar el modo de comunicación USB mediante programación?
- Tipos incompatibles: HomeFragment no se puede convertir en Fragment en Android
Como android docs sugieren que si mp es si no se ha inicializado en ese momento java.lang.IllegalStateException se lanzará por lo que tiene que initilize primero o tienes que escribir
Echa un vistazo a los documentos http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying ()
Intenta de esta manera
mp=MediaPlayer.create(context, name); try { if (mp.isPlaying()) { mp.stop(); mp.release(); mp=MediaPlayer.create(context, name); } mp.start(); } catch (Exception e) { }
Intente cambiar mp.release()
en reset()
. Que podría ayudarle.
Utilice runOnUiThread para preparar mediaRecorder.
private boolean prepareMediaRecorder() { mediaRecorder = new MediaRecorder(); runOnUiThread(new Runnable() { @Override public void run() { mediaRecorder.reset(); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mediaRecorder.setOutputFile(filePath); try { mediaRecorder.prepare(); } catch (IOException e) { mediaRecorder = null; return; } mediaRecorder.start(); recording = true; } }); return true; }
- Necesita un ejemplo de HttpResponseCache en Android
- ¿Qué tan confiable es LocationLastKnownLocation de LocationManager y con qué frecuencia se actualiza?