Error en la preparación de la excepción de aumento de jugador de Android: estado 0x1

Estoy intentando jugar el archivo audio de la carpeta res / raw.
pero recibiendo el error
preparar falló: status = 0x1

Mi código:

package com.example.lvm; import java.io.IOException; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button introAudio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); introAudio=(Button)findViewById(R.id.introAudio); introAudio.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { MediaPlayer mp = new MediaPlayer(); String name = "greeting"; mp.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.release(); } }); try { mp.setDataSource("android.resource://com.example.lvm/raw/"+name); mp.prepare(); mp.start(); } catch (Exception e) { Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

 prepare failed:status 0x1 

se está produciendo debido a que la ruta de acceso de archivo está en error o el directorio incorrecto o Url o Uri encontrado.

Intente seguir en su código.

  mediaplayer.setDataSrouce(MainActivity.this, Uri.parse("android.resource://com.example.lvm/raw/"+name)); //do not add any extension to name, eg. `R.raw.your_raw_file` 

En lugar de

 mp.setDataSource("android.resource://com.example.lvm/raw/"+name); 

Primero, compruebe el nombre de su archivo. No puede contener mayúsculas y caracteres especiales. Elimine ese archivo, cambie el nombre y vuelva a copiarlo al entorno. A continuación, utilice en Project => Clean Eclipse Project => Clean función (R.java debe ser regenerado). También puedes intentar usar mp.setDataSource("android.resource://com.example.lvm/raw/"+name); en lugar de mediaplayer.setDataSrouce(MainActivity.this, Uri.parse("android.resource://com.example.lvm/raw/"+name)); Recuerde que no agregue ninguna extensión al nombre, por ejemplo. R.raw.your_raw_file

Parece que la creación de MediaPlayer preparado es el máximo. Cuando está intentando crear el 32º e invocado prepare fallará con este error.

Si este es el caso, cómo arreglar esto:

  1. Invoque la release en MediaPlayer inútil;
  2. Limite el número de MediaPlayer que puede crear. Por ejemplo, si está utilizando una cola, pruebe con ArrayBlockingQueue<T> .
  3. Capture la IOException e , marque "Prepare failed.: status=0x1".equals(e.getMessage()) , si es así "Prepare failed.: status=0x1".equals(e.getMessage()) intentarlo.
  • Creación de matriz de números enteros de identificadores de recursos
  • Cómo obtener imágenes dinámicamente desde una carpeta dibujable
  • Acceso a recursos e identificadores de recursos de otras aplicaciones
  • Controlar la visibilidad de la vista desde un recurso
  • Recurso de Android para un producto específico
  • Se generan diferentes identificaciones para el mismo recurso en las clases R
  • ¿Cómo usar diferentes imágenes de fondo para diferentes resoluciones en Android?
  • Gradle build falló en Android Studio versiones nuevas y viejas en OSX
  • ¿Cómo hago Eclipse / ADT honrar las etiquetas de nocompress que agregué a build.xml?
  • Diseños específicos de densidad vs. diseños específicos de tamaño en Android
  • Práctica recomendada para las declaraciones de tamaño de texto dimen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.