Поведение видеоплеера 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 ответов


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

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

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

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

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

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

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

спасибо,

января


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

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

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

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

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