2011-12-13 59 views
0

我遇到了用于触发音乐播放顺序的相当基本的If语句的问题。这是一个自动预览按钮。基本上它是一个相当平均的预览 - 用户点击一个按钮 - 预览播放 - 按钮图像切换到暂停图标,再次点击,轨道将停止播放和图像将切换回来。Phonegap/jquery移动Android应用程序如果问题

我目前得到了下面的脚本 -

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语句的所有国家职能 - 尽管这在浏览器中运行良好 - 在移动设备上。如果声明跑两个状态 - 因此它会停下来和一个第二间隙开始的轨道。所以我把状态改变分为设定的超时功能,以便在状态改变之前完成 - 但仍然没有快乐,现在它播放两次(重叠)曲目,所以它使我疯狂!

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

干杯 保罗

回答

0

我包括在现有矿山jquerymobile你的代码,并像实例化一个媒体对象的一部分部分功能...

评论后,我看到了一个错误:

“没有定义playingTwo”

我认为你必须设置VAR playingTwo;在函数previewThis之前。

让我知道这是否解决了这个问题。

祝你好运!

+0

谢谢你们 - 它实际上就在那里 - 我刚刚在上面的例子中错过了 - 我现在就添加! – Dancer 2011-12-14 15:13:21

0

为@Mariano写道,我建议在你的文件的顶部添加:

var playingTwo = false; 

,因为它可能不是分配(也创建)当您已经检查它的价值。

希望这会有所帮助!

+0

干杯莱昂 - 这是在我的代码 - 我只是错过了上面 – Dancer 2011-12-14 15:37:27