El sonido de los medios de comunicación de teléfono deja de reproducir después de 5 veces

Necesito reproducir el sonido "correcto" si el usuario responde a la pregunta correctamente y "incorrecto" si es incorrecto. El sonido se reproduce al principio, pero después de la quinta vez que respondo correctamente que la salida de la cuarta vez "correcta" de sonido ya la quinta vez, no se oye ningún sonido. Parece que la música sólo se puede jugar en la mayoría de las veces en 4 ª. ¿Cuál es la razón posible que causa esto?

Actualizado * He agregado media.release en mi stopAudio (), pero hasta ahora el sonido se puede escuchar por sexto (mejorado), pero aún no es adecuado para mi caso. (Muchas preguntas que necesitan el mismo efecto de sonido)

Js.file

// Audio player var my_media = null; var mediaTimer = null; // Play audio function playAudio(src) { // Create Media object from src my_media = new Media(src, null, soundCB); my_media.play(); } function soundCB(err){ console.log("playAudio():Audio Error: "+err); } // Stop audio // function stopAudio() { if (my_media) { alert("AQA"); my_media.stop(); my_media.release(); } clearInterval(mediaTimer); mediaTimer = null; } 

///// parte de la pregunta //////

 $("#answer").live('tap', function(event){ if(buttonAns==true) { $this= $(this); buttonAns = false; var choice = $this.attr("class"); if((correctAnsNo == 0 && choice =="answer0")||(correctAnsNo == 1 && choice =="answer1")||(correctAnsNo == 2 && choice =="answer2")){ playAudio('/android_asset/www/audio/fall.mp3'); //falling sound correct = parseInt(correct)+2; playAudio('/android_asset/www/audio/correct.mp3'); //dingdong }else{ playAudio('/android_asset/www/audio/wrong1.wav'); } if(quesNo < wordsNo ){ setTimeout(function() { buttonAns = true; db.transaction(queryQuesDB, errorCB); },1800); }else{ endLevel(); } } else { event.preventDefault(); } }); 

Android tiene una cantidad finita de recursos para reproducir sonidos. Sigue creando un nuevo objeto Media cada vez que quiera reproducir un archivo. Necesita liberar los sonidos que no está usando. Si necesita reproducir esos sonidos varias veces cada uno, considere la posibilidad de crear objetos multimedia independientes para mantener una referencia a esos sonidos.

Leer en media.release .

Yo tuve el mismo problema. La solución que hice .:

  if(media){ media.stop(); media.release(); } media = new Media(...); 

Aquí está mi truco: lo solté cuando terminó de jugar o se produjo un error.

 function playAudio(url) { try { var my_media = new Media(url, // success callback function () { **my_media.release();** }, // error callback function (err) { **my_media.release();** }); // Play audio my_media.play(); } catch (e) { alert(e.message); } } 
  • ¿Es posible en Android registrar algo reproducido por MediaPlayer?
  • VideoView no reproduce vídeo en bucle solo en Galaxy s4
  • Establecer sonido de notificación en la carpeta Activos
  • Obligar a Android a utilizar RTSP / AVP / TCP intercalado
  • Enrutado del reproductor multimedia de Android
  • ¿Cómo reanudar la reproducción de vídeo después de destruir la superficie?
  • Surafce ha sido liberado error
  • Java.io.IOException: setDataSource failed .: status = 0x80000000
  • Transmisión en vivo de audio retrasos mientras se reproduce en android-16?
  • Streaming con Android MediaPlayer: captura de errores y almacenamiento en memoria intermedia
  • ¿Puede Android MediaPlayer reproducir audio en un archivo comprimido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.