phonegap 媒体声音在 5 次后停止播放
Posted
技术标签:
【中文标题】phonegap 媒体声音在 5 次后停止播放【英文标题】:phonegap media sound stop playing after 5 times 【发布时间】:2012-11-14 00:02:14 【问题描述】:如果用户正确回答问题,我需要播放“正确”声音,如果不正确,我需要播放“错误”声音。声音开始播放,但在第五次之后我回答正确,第四次输出“正确”的声音已经第五次了,听不到声音。音乐似乎最多只能播放 4 次。 造成这种情况的可能原因是什么?
更新* 我在我的 stopAudio() 中添加了 media.release,但到目前为止可以听到第 6 次(改进)的声音,但它仍然不适合我的情况。 (很多问题需要相同的音效)
js.文件
// 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();
);
【问题讨论】:
【参考方案1】:Android 播放声音的资源是有限的。每次要播放文件时,您都会不断创建一个新的 Media 对象。你需要释放你不使用的声音。如果您需要多次播放这些声音,请考虑创建单独的媒体对象来保存对这些声音的引用。
阅读media.release。
【讨论】:
创建三个变量。一个代表跌倒,分别是正确和错误。【参考方案2】:我遇到了同样的问题。 我做的解决方案:
if(media)
media.stop();
media.release();
media = new Media(...);
【讨论】:
【参考方案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 媒体声音在 5 次后停止播放的主要内容,如果未能解决你的问题,请参考以下文章
当 iTunes 从网络链接启动时,Phonegap 媒体对象停止播放
在 cordova/phonegap Android 应用程序上关闭屏幕后媒体停止播放
PhoneGap/Cordova iOS 播放声音禁用麦克风