经过5次的PhoneGap媒体声音停止播放(phonegap media sound stop pl

2019-07-04 03:01发布

我需要发挥“正确”的声音,如果用户正确地与“错”,如果不正确回答这个问题。 播放声音时在第一,但在第五时间后,我的回答是正确的,其输出的第四次“正确”的声音已经是第五次,没有发出任何声音。 看来音乐最多只能4次播放。 是什么原因可能导致这个?

更新*我加media.release在我stopAudio(),但到目前为止,声音可以听到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();
}       
});

Answer 1:

Android有以播放声音的资源数量是有限的。 你让你要播放的文件每次创建一个新的媒体对象。 你需要释放你不使用的声音。 如果你需要播放这些声音每个然后多次考虑创建单独的媒体对象来保存这些声音的参考。

阅读上media.release 。



Answer 2:

我有同样的问题。 该解决方案我做:

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


Answer 3:

这里是我的绝招:我发布了它在它播放完毕或发生错误。

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


文章来源: phonegap media sound stop playing after 5 times