我需要播放“正确”的声音,如果用户正确回答问题和“错误”,如果不正确。声音最初在播放,但在第五次我正确回答哪个输出第四次“正确”的声音已经第五次了,没有声音可以听到。这音乐似乎最多只能演奏第四次。造成这种情况的可能原因是什么?
更新了*,我在stopAudio()中添加了media.release,但到目前为止,第6(改进)的声音可以听到,但仍然不适合我的情况。(许多问题需要相同的音效)
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;
}问题部分/
$("#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();
}
});发布于 2012-11-26 15:47:21
Android有有限的资源来播放声音。每次要播放文件时,都要继续创建一个新的Media对象。你需要释放你没有使用的声音。如果您需要多次播放这些声音,那么请考虑创建单独的媒体对象来保存对这些声音的引用。
读一读media.release。
发布于 2013-02-14 09:15:28
我也有同样的问题。我做过的解决方案:
if(media){
media.stop();
media.release();
}
media = new Media(...);发布于 2013-03-21 01:39:25
下面是我的技巧:我在它上发布了它,完成了播放,或者出现了一个错误。
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);
}
}https://stackoverflow.com/questions/13566064
复制相似问题