Я использую jQuery jPlayer для воспроизведения видеофайлов. Когда закончилось событие, я установил новое видео с помощью функции «setMedia». В Safari это законченное событие происходит только один раз. В других сообщениях я читал решение использовать событие паузы, это не работает: после установки setMedia в завершенном событии в Safari (5.1) не запускаются никакие события, поэтому не происходит никаких завершенных событий и никаких событий паузы.
Пример кода:
$("#jquery_jplayer_1").jPlayer({
ready: function () {
console.log("Ready");
$(this).jPlayer("setMedia", {
m4v: "videos/main-intro.m4v"
});
},pause: function () {
console.log('Video Player Paused');
}
,ended: function () {
$("#jquery_jplayer_1").jPlayer("setMedia", {
m4v: "videos/outro-slide-1.m4v"
});
$("#jquery_jplayer_1").jPlayer("play");
console.log("Video player Ended");
}
});
В Chrome работает нормально, консоль логов:
1012 * Готов *
Видеоплеер приостановлен
Видеоплеер завершен
Видеоплеер приостановлен
Видеоплеер завершен
Etc ..
В Safari он не запускает никаких событий после setMedia, он только регистрирует:
Когда я удаляю функцию setMedia в обработчике завершения, события запускаются корректно.
обновление: однако на iPad оно работает случайным образом. Кажется, это не имеет никакого смысла.