El sonido de los medios de Phonegap deja de reproducirse 5 veces

Necesito reproducir el sonido “correcto” si el usuario responde la pregunta correctamente y “incorrecto” si es incorrecto. El sonido se reproduce al principio, pero después de la quinta vez, respondo correctamente, lo que produce la cuarta vez que el sonido “correcto” ya es la quinta vez, no se escucha ningún sonido. Parece que la música solo se puede tocar como máximo 4 veces. ¿Cuál es la posible razón que causa esto?

actualizado * Agregué media.release en mi StopAudio () pero hasta ahora el sonido se puede escuchar en 6th (mejorado) pero aún no se adapta a 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 multimedia cada vez que quiera reproducir un archivo. Necesitas liberar los sonidos que no estás usando. Si necesita reproducir esos sonidos varias veces, considere crear objetos multimedia separados para mantener una referencia a esos sonidos.

Lea sobre los medios de comunicación .

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 termine 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); } }