我遇到了一个相当基本的If语句的问题,我用来触发音乐播放序列。这是一个自动预览按钮。基本上它是一个非常平均的预览 - 用户单击按钮 - 预览播放 - 按钮图像切换到暂停图标,再次单击,轨道将停止播放,图像将切换回来。
我目前有以下脚本 -
var playingTwo=false;
var playthis=null;
function previewThis(preview){
playthis = "/android_asset/www/" +"Paradise"+".mp3"
prevMedia= new Media(playthis, stopAudio, null);
playPrev();
}
function playPrev() {
if (!playingTwo) {
prevMedia.play();
$('.playBtnPrev').removeClass('sel')
playVarTwo();
} else {
prevMedia.stop();
$('.playBtnPrev').addClass('sel')
pauseVarTwo();
}
}
function playVarTwo(){setTimeout( function() {
playingTwo = true;
}, 1000 );}
function pauseVarTwo(){setTimeout( function() {
playingTwo = false;
}, 1000 );
}
$('.playBtnPrev').live('tap',function(event) {previewThis();});
基本上,previewThis()脚本最终将传递给它的轨道名称,它设置媒体位置并触发playPrev()脚本 - 播放按钮检测它是否已播放 - 如果不播放 - 如果它已经播放它暂停和切换图像 - 所有相当简单。
最初我将所有状态函数包装在每个If语句中 - 尽管这在浏览器中运行良好 - 在移动设备上,If语句同时运行两个状态 - 所以它会停止并以第二个间隙启动轨道。因此,我将状态更改分为设置超时功能,以便在状态发生变化之前完成if - 但仍然没有快乐,现在它会播放两次(重叠)音轨,所以它让我疯了!
有人可以提供任何建议吗?
干杯 保罗
答案 0 :(得分:0)
我将您的代码包含在现有的jquerymobile矿中,并在评论之后执行某些功能,例如实例化Media对象的部分......
我看到一个错误:
“playTwo未定义”
我认为你必须设置var playingTwo;在功能预览之前。
如果能解决这个问题,请告诉我。
祝你好运!
答案 1 :(得分:0)
正如@Mariano所写,我建议在你的文件顶部添加:
var playingTwo = false;
因为当你已经检查它的值时,可能没有分配(也没有创建)。
希望这有帮助!