HTML5 Audio на устройстве iPad / iPhone останавливается при прикосновении - PullRequest
1 голос
/ 19 октября 2011

Чтобы получить анимацию HTML5, воспроизводящуюся со звуком на устройстве, я сделал div размером с весь браузер с именем "theScreen" и использую следующий код:

audioCont.prototype.iCrapLoadPlayThrough = function () { 
    if (this.supported) {
        theScreen = document.getElementById("theScreen");
        var self = this;
        theScreen.addEventListener('touchstart', function(){self.iCrapClickedLoadPlayThrough();}, false);
        return(1);
    } else {
        return(0); // Not supported
    }
};
audioCont.prototype.iCrapClickedLoadPlayThrough = function () { // Check if supported, then load the audio file
    var self = this;
    theScreen.removeEventListener('touchstart', function(){self.iCrapClickedLoadPlayThrough();}, false);
    this.addCanPlayThrough();
    this.load();
}

Сейчасэто работает, и звук / анимация начинается, когда пользователь нажимает на экран.Проблема в том, что если они снова нажмут на него, звук прекратится, и при каждом повторном нажатии вы услышите несколько мс звука.Кто-нибудь знает почему?

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Я нашел решение проблемы:

theScreen.addEventListener('touchstart', eventID=function() {self.iCrapClickedLoadPlayThrough();}, false);

then

theScreen.removeEventListener('touchstart', eventID, false);
0 голосов
/ 19 октября 2011

Он не удаляет прослушиватель событий, потому что это анонимная функция.Удалите анонимную функцию и просто введите имя функции

 theScreen.addEventListener('touchstart',self.iCrapClickedLoadPlayThrough,false)
 theScreen.removeEventListener('touchstart',self.iCrapClickedLoadPlayThrough,true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...