Я пытаюсь закодировать сайт в GWT, который воспроизводит видео с помощью HTML5. Все отлично работает на рабочем столе, но мобильный Safari на iPhone и iPad не воспроизводит видео.
Я могу воспроизвести видео, используя Видео для всех. Я даже скопировал код на свою собственную HTML-страницу, и он работает безупречно. Если я обслуживаю этот же код через виджет GWT, мобильное сафари не будет воспроизводить видео. На iPhone я вижу серый квадрат с запрещающим значком вокруг кнопки воспроизведения, а на iPad он отображается как черный ящик.
Я убедился, что мой doctype <!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-страницу, которая работает безупречно. Он должен иметь какое-то отношение к тегу видео, создаваемому через javascript. (I.E. Я нажимаю кнопку, и тег видео генерируется без обновления страницы.)
Я не уверен, что проблема связана с мобильным сафари, или генерируется javascript GWT, но в любом случае мне придется найти обходной путь.
EDIT (7/23/10):
Я вернулся и повторно посетил проблему. Поскольку я разместил этот вопрос, я полностью изменил макет страницы, чтобы использовать LayoutPanels вместо DockPanels и вертикальных/горизонтальных панелей. Я также обновился до GWT 2.0.4. Используя iPad с iOS 3.2.1, он все еще не воспроизводит видео, но я получаю рамку плаката, когда я указываю его (как и раньше). С iPhone 4 и iOS 4.0.1 видео воспроизводится без проблем. Таким образом, он выглядит как проблема, исправлена с iOS 4.