У меня проблемы с довольно простым оператором 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 до того, как состояние изменилось - но все равно не радость, теперь он проигрывает трек дважды (перекрывая), так что это сводит меня с ума!
Может кто-нибудь дать какой-нибудь совет, пожалуйста?
Приветствие
Пол