Я пытаюсь закодировать сайт в GWT, который воспроизводит видео с HTML5. Все отлично работает на рабочем столе, но мобильное Safari на iPhone и iPad не воспроизводит видео.
Я могу воспроизвести видео, используя Видео для всех . Я даже скопировал код на свою собственную простую HTML-страницу, и она работает безупречно. Если я отправлю этот же код через виджет GWT, мобильное сафари не будет воспроизводить видео. На iPhone я вижу серую коробку с запрещающим знаком вокруг кнопки воспроизведения, а на iPad она отображается как черная коробка.
Я убедился, что мой тип документа <!DOCTYPE html>
, но я не знаю, где еще начать отладку. Может быть, это потому, что код вводится через JavaScript? Будем весьма благодарны за любые указания о том, где начать поиск.
Вот точный код, который я использую для видео:
<!-- "Video For Everybody" by Kroc Camen. see <camendesign.com/code/video_for_everybody> for documented code
=================================================================================================================== -->
<video width="640" height="360" poster="poster.jpg" controls autoplay>
<source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4"></source>
<source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv" type="video/ogg"></source>
<!--[if gt IE 6]>
<object width="640" height="375" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"><!
[endif]--><!--[if !IE]><!-->
<object width="640" height="375" type="video/quicktime" data="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4">
<!--<![endif]-->
<param name="src" value="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" />
<param name="autoplay" value="true" />
<param name="showlogo" value="false" />
<object width="640" height="384" type="application/x-shockwave-flash"
data="player.swf?autostart=true&image=poster.jpg&file=http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4">
<param name="movie" value="player.swf?autostart=true&image=poster.jpg&file=http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" />
<!-- fallback image -->
<img src="poster.jpg" width="640" height="360" alt="Big Buck Bunny"
title="No video playback capabilities, please download the video below" />
</object><!--[if gt IE 6]><!-->
</object><!--<![endif]-->
</video>
EDIT:
Я скопировал источник, который отображался на моем iPhone / iPad, используя этот букмарклет . Затем я скопировал этот код на простую HTML-страницу, которая работает безупречно. Это должно быть как-то связано с тегом video, генерируемым с помощью javascript. (Т.е. я нажимаю кнопку, и видео-тег создается без обновления страницы.)
Я не уверен, что проблема в мобильном сафари или в том, что GWT генерирует javascript, но в любом случае мне придется найти обходной путь.
РЕДАКТИРОВАТЬ (23.07.10):
Я вернулся и повторно посетил вопрос. С тех пор как я опубликовал вопрос, я полностью изменил макет страницы, чтобы использовать LayoutPanels вместо панелей DockPanels и Vertical / Horizontal. Я также обновился до GWT 2.0.4. Используя iPad с iOS 3.2.1, он по-прежнему не воспроизводит видео, но я получаю кадр плаката, когда указываю его (как и раньше). С iPhone 4 и iOS 4.0.1 видео воспроизводится без проблем. Похоже, что проблема в том, что она исправлена в iOS 4.