我正在尝试在 GWT 中编写一个使用 HTML5 播放视频的网站。一切都在桌面上运行良好,但 iPhone 和 iPad 上的移动 Safari 不播放视频。
我可以使用Video for Everyone播放视频。我什至已经将代码复制到我自己的纯 HTML 页面中,并且它运行良好。如果我通过 GWT 小部件提供相同的代码,移动 safari 将不会播放视频。在 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>
编辑:
我使用这个小书签复制了在我的 iPhone/iPad 上显示的源代码。然后我将该代码复制到一个纯 HTML 页面,该页面运行良好。它必须与通过 javascript 生成的视频标签有关。(IE我点击一个按钮,视频标签在没有刷新页面的情况下生成。)
我不确定问题是移动 safari 还是 javascript GWT 生成的,但无论哪种方式,我都必须找到解决方法。
编辑(7/23/10):
我已经回来并重新访问了这个问题。自从我发布问题以来,我已经完全改变了页面的布局以使用 LayoutPanels 而不是 DockPanels 和 Vertical/Horizontal 面板。我还升级到了 GWT 2.0.4。使用带有 iOS 3.2.1 的 iPad,它仍然无法播放视频,但是当我指定它时,我确实得到了海报框架(与以前相同)。使用 iPhone 4 和 iOS 4.0.1,视频播放没有问题。所以看起来无论问题是什么,它都已在 iOS 4 中得到修复。