Приложение Phonegap / Jquery Mobile для Android, если проблема - PullRequest
0 голосов
/ 14 декабря 2011

У меня проблемы с довольно простым оператором 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 голосов
/ 14 декабря 2011

Как писал @Mariano, я бы предложил добавить в начало вашего файла:

 var playingTwo = false;

, поскольку он, вероятно, не назначен (и не создан), когда вы уже проверяете его значение.

Надеюсь, это поможет!

0 голосов
/ 14 декабря 2011

Я включил ваш код в существующую шахту jquerymobile, и после комментария какая-то функция, например часть создания объекта Media ...

Я вижу ошибку:

"PlayingTwo не определено"

Я думаю, что вы должны установить var playingTwo; перед функцией предварительного просмотра.

Дайте мне знать, если это решит проблему.

Удачи!

...