Html5 - обратный вызов, когда медиа готово на iPad, не работает

Я пытаюсь добавить обратный вызов к аудиоэлементу HTML5 на iPad. Я добавил eventlistener к элементу, myOtherThing() запускается, но звука нет. Если я сделаю паузу и снова воспроизведу звук, начнется звук. Это работает в Chrome. Есть ли у кого-нибудь идеи, как я могу это сделать?

    myAudioElement.src = "path_to_file";
    addEventListener("canplay", function(){
        myAudioElement.play();
        myOtherThing.start();
    });

РЕШЕНО

Просто хотел поделиться своим решением здесь, на случай, если оно понадобится кому-то другому. Насколько я понимаю, iPad не запускает никаких событий без взаимодействия с пользователем. Итак, чтобы иметь возможность использовать canply, play и все другие события, вам необходимо использовать встроенный медиа-контроллер. Как только вы нажимаете кнопку воспроизведения в этом контроллере, события запускаются. После этого вы можете использовать свой собственный интерфейс.


person kimpettersen    schedule 26.03.2012    source источник


Ответы (1)


Вам нужно сообщить Safari о начале загрузки файла. Кроме того, событие canplay не поддерживается в iOS. Просто позвоните play сразу после звонка load.

myAudioElement.src = "path_to_file";
myAudioElement.load(); // Start loading the audio
myAudioElement.play();
person Matthew    schedule 26.03.2012
comment
Отличный сайт, на который вы ссылались. Я пробовал это, но важно, чтобы звук был готов к воспроизведению, когда я вызываю myOtherThing (). Так что мне нужен обратный звонок. - person kimpettersen; 26.03.2012