Поведение видеоплеера HTML5 на iPhone и iPod в веб-приложениях Safari
на iPhone и iPod, если видео YouTube встроено в веб-страницу, пользователь может коснуться видео, и видео начнет воспроизводиться-медиаплеер iOS скользит, и видео воспроизводится на весь экран в альбомной ориентации. После того, как видео закончило воспроизведение, медиаплеер iOS скользит назад, показывая веб-страницу, где видео было встроено.
С использованием HTML5 <video>
тег, пользователь может коснуться видео и видео будет "наезд" на весь экран и начать играть независимо от текущей ориентации устройства. После того, как видео закончило воспроизведение, пользователь должен нажать один раз, чтобы вызвать элементы управления плеером, а затем нажмите "Готово", чтобы вернуться на веб-страницу.
к сожалению, загрузка моих видео на YouTube не является вариантом для этого приложения, и я не нашел видеоплеер HTML5, который возвращается на веб-сайт после завершения воспроизведения видео. Я бы предпочел, чтобы видеоплеер демонстрировал то же поведение, что и YouTube встроенное видео или то, что видео воспроизводится inline. Принуждение встроенного видео возможно в настроенном UIWebView
, но к сожалению это не вариант (как это должно быть веб-приложение, не приложение). Кроме того,<video>
свойства webkit-playsinline
не работает.
есть ли видеоплееры HTML5, которые могут реплицировать встроенное поведение видео YouTube? Я пропускаю какие-либо очевидные обходные пути Javascript? Есть ли способ сообщить окну, что видео завершено воспроизведение без взаимодействие с пользователем?
EDIT:
благодаря Яну эта проблема решена. Далее следует рабочий код, а также список ошибок / заметок.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>scratchpad</title>
</head>
<body>
<video id="video">
<source src="movie.mp4" type="video/mp4" />
</video>
<script type="text/javascript">
document.getElementById('video').addEventListener('ended',function(){document.getElementById('video').webkitExitFullScreen();},false);
</script>
</body>
</html>
ошибки, которые я сделал:
1. Забыл добавить идентификатор в <video>
тег.
2. Тестирование для webkitSupportsFullscreen
-Я никогда не мог заставить это свойство тестироваться как " true."Комментарий в коде данное сообщение на форуме говорит,
// note: .webkitSupportsFullscreen is false while the video is loading
но я не смог создать условие, в котором он вернулся истинный.
3. Полностью упущено это сообщение stackoverflow.
2 ответов
Хм, не могу попробовать сам...но ты уверен, что видел это?
Итак, "webkitEnterFullScreen ()" может быть вашим другом (хотя doc говорит только для чтения):
встроенное видео невозможно на любое устройство iOS рядом с iPad (пока).
в любом случае, вы можете обнаружить конец видео в Javascript с помощью прослушивателя событий:
document.getElementById('video').addEventListener('ended',videoEndListener,false);
спасибо,
января
из документации Safari:
"важно: метод webkitEnterFullscreen () может быть вызван только в ответ на действие пользователя, такое как нажатие кнопки. Например, нельзя вызвать webkitEnterFullscreen() в ответ на событие onload ()."
Это может объяснить, почему ваш webkitEnterFullscreen всегда ложный.
решение Яна, обрабатывающее событие "ended", является лучшим в вашем случае.