如果问题,Phonegap / Jquery移动Android应用程序

时间:2011-12-13 23:14:38

标签: jquery android jquery-mobile cordova

我遇到了一个相当基本的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 - 但仍然没有快乐,现在它会播放两次(重叠)音轨,所以它让我疯了!

有人可以提供任何建议吗?

干杯 保罗

2 个答案:

答案 0 :(得分:0)

我将您的代码包含在现有的jquerymobile矿中,并在评论之后执行某些功能,例如实例化Media对象的部分......

我看到一个错误:

“playTwo未定义”

我认为你必须设置var playingTwo;在功能预览之前。

如果能解决这个问题,请告诉我。

祝你好运!

答案 1 :(得分:0)

正如@Mariano所写,我建议在你的文件顶部添加:

 var playingTwo = false;

因为当你已经检查它的值时,可能没有分配(也没有创建)。

希望这有帮助!