Android MediaPlayer – error (1, -4) al reproducir una canción
Estoy intentando jugar un archivo audio mp3 de la tarjeta del sd, usando la trayectoria y el nombre de archivo del archivo audio para conseguir su Uri.
Tengo un Spinner
poblado con los nombres de pistas almacenados en la tarjeta SD. Cuando se selecciona un elemento, se ejecutará el código siguiente:
- android - cómo transmitir vídeo desde el teléfono al servidor?
- Cómo transmitir vídeo desde Http o RTSP Url en android
- Enviar streaming de video en vivo al motor de streaming wowza con dispositivos Android
- Ni la pausa ni la parada funcionan mientras se reproduce RTSP con Android MediaPlayer
- Android: ¿Cualquier forma de reducir el retardo de los medios / latencia en VideoView / MediaPlayer?
final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; OnItemSelectedListener listener = new OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { TextView tv = (TextView) selectedItemView; File file = new File(uri.getPath() + "/" + tv.getText().toString()); Log.i(TAG, "------------- PATH : " + file.getAbsolutePath()); Uri uri = Uri.fromFile(file); MediaPlayer mP = new MediaPlayer(); try { mP.setDataSource(context, uri); mP.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub mp.start(); } }); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { mP.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } };
Estoy recibiendo los siguientes errores:
08-21 16:16:37.099: I/MusicFileActivity(3940): ------------- PATH : /external/audio/media/antazirouka 08-21 16:16:37.159: W/MediaPlayer(3940): info/warning (1, 26) 08-21 16:16:37.159: E/MediaPlayer(3940): error (1, -4) 08-21 16:16:37.159: W/System.err(3940): java.io.IOException: Prepare failed.: status=0x1 08-21 16:16:37.169: W/System.err(3940): at android.media.MediaPlayer.prepare(Native Method) 08-21 16:16:37.169: W/System.err(3940): at com.example.project.MusicFileActivity$1.onItemSelected(MusicFileActivity.java:84) 08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView.fireOnSelected(AdapterView.java:871) 08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView.access$200(AdapterView.java:42) 08-21 16:16:37.169: W/System.err(3940): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837) 08-21 16:16:37.169: W/System.err(3940): at android.os.Handler.handleCallback(Handler.java:587) 08-21 16:16:37.169: W/System.err(3940): at android.os.Handler.dispatchMessage(Handler.java:92) 08-21 16:16:37.169: W/System.err(3940): at android.os.Looper.loop(Looper.java:123) 08-21 16:16:37.169: W/System.err(3940): at android.app.ActivityThread.main(ActivityThread.java:3687) 08-21 16:16:37.169: W/System.err(3940): at java.lang.reflect.Method.invokeNative(Native Method) 08-21 16:16:37.169: W/System.err(3940): at java.lang.reflect.Method.invoke(Method.java:507) 08-21 16:16:37.169: W/System.err(3940): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 08-21 16:16:37.169: W/System.err(3940): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 08-21 16:16:37.169: W/System.err(3940): at dalvik.system.NativeStart.main(Native Method)
¿Alguien tiene alguna idea al respecto? Gracias por adelantado 🙂
- Android MediaPlayer Live Streaming detiene después de aproximadamente 1 minuto en Samsung Galaxy S4 y S5
- La secuencia RTSP en directo no se reproducirá con VideoView; No hay error de proveedor de contenido
- Android Video Streaming - ¿Dispositivo compatible?
- Transmitir video en vivo de un teléfono a otro utilizando socket fd
- Cómo jugar a .m3u8 Stream Utilizando jwplayer en phonegap Android?
Amigo que ha colocado mP.prepare();
En la línea incorrecta usted necesita llamarla después de mP.setDataSource(context, uri);
Función y antes mp.start();
También no intentar hacer varias instancias de MediaPlayer . Realizar uno y utilizar la función reset () cada vez antes de iniciar.
Consulte este enlace para obtener más ayuda.
¿Tienes este permiso en AndroidManifest.xml?
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />