Поведение видеоввода HTML5 на iPhone и iPod в веб-приложениях Safari

На iPhone и iPod, если видеоролик YouTube встроен в веб-страницу, пользователь может коснуться видео, и видео начнет воспроизводиться - медиаплеер iOS слайды, а видео воспроизводится в полноэкранном режиме в альбомной ориентации. Как только видео закончит воспроизведение, мультимедийный проигрыватель iOS отскакивает назад, показывая веб-страницу, на которой было встроено видео.

Используя тег HTML5 <video>, пользователь может коснуться видео, и видео будет "масштабироваться" на весь экран и начнет воспроизводиться независимо от текущей ориентации устройства. Как только видео закончит воспроизведение, пользователь должен нажать один раз, чтобы вызвать элементы управления проигрывателя, а затем нажмите "Готово", чтобы вернуться на веб-страницу.

К сожалению, загрузка моего видео на YouTube не является вариантом для этого приложения, и я не нашел видеоплеер HTML5, который возвращается на сайт после завершения видео. Я бы предпочел, чтобы видеоплеер проявлял то же поведение, что и встроенные видео YouTube, или видео воспроизводило встроенный. Форсирование встроенного видео возможно в настраиваемом 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. Я никогда не мог получить это свойство для проверки как "истинного". Комментарий в коде этот пост форума говорит,

// note: .webkitSupportsFullscreen is false while the video is loading

но мне не удалось создать условие, в котором оно вернулось.
3. Полностью упущен qaru.site/info/367571/....

Ответ 1

Hm, не могу попробовать это сам... но уверен, что вы это видели?

http://developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLVideoElementClassReference/HTMLVideoElement/HTMLVideoElement.html#//apple_ref/doc/uid/TP40009356

Итак, "webkitEnterFullScreen()" может быть вашим другом (хотя документ указывает его только для чтения):

http://nathanbuskirk.com/?p=1

Встроенное видео невозможно на любом устройстве iOS рядом с iPad (до сих пор).

В любом случае, вы можете обнаружить конец видео в Javascript, используя прослушиватель событий:

document.getElementById('video').addEventListener('ended',videoEndListener,false);

Приветствия,

Jan

Ответ 2

Из документации Safari:

"Важно: метод webkitEnterFullscreen() может быть вызван только в ответ на действие пользователя, например, нажатие кнопки. Вы не можете вызвать webkitEnterFullscreen() в ответ на событие onload(), например."

Это может объяснить, почему ваш webkitEnterFullscreen всегда false.

http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html#//apple_ref/doc/uid/TP40009523-CH3-SW13

Jan решение, обрабатывающее событие "завершено", является лучшим в вашем случае.