Android MediaPlayer.start no se inicia

Todavía no he encontrado una respuesta a esto.

Tengo un archivo local (R.raw.Bob); y estoy tratando de usar MediaPlayer para reproducir el archivo.

A veces juega, a veces no. Tengo otro archivo que juega aparentemente bien cada vez.

Mi flujo de actividad es como esto: En onCreate hago lo siguiente:

MediaPlayer mBackground = MediaPlayer.create(MainAct.this, R.raw.background); mBackground.start(); // Works as expected. 

Ahora en una parte diferente de la actividad tengo lo siguiente:

 MediaPlayer mBob= MediaPlayer.create(MainActivity.this, R.raw.Bob); mBob.start(); 

Y no ocurre nada. He utilizado Log.i () y la ejecución pasa a través del código relevante, pero el archivo no se inicia.

¿Por qué MediaPlayer a veces funciona ya veces no, y hay una forma más confiable de reproducir archivos de sonido?

Pruebe esto para comenzar:

 MediaPlayer mBob = MediaPlayer.create(MainActivity.this, R.raw.Bob); mBob.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(final MediaPlayer mp) { mp.start(); } }); 

y esto para detener:

 mBob.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.stop(); } }); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.