Ich versuche eine Website in GWT zu codieren, die Videos mit HTML5 abspielt. Alles funktioniert gut auf dem Desktop, aber Mobile Safari sowohl auf dem iPhone als auch auf dem iPad spielt das Video nicht ab.GWT & HTML5 Video in Mobile Safari
Ich kann ein Video mit Video for Everybody spielen. Ich habe sogar den Code auf meine eigene einfache HTML-Seite kopiert, und es funktioniert einwandfrei. Wenn ich denselben Code über ein GWT-Widget ausliege, wird Mobile Safari das Video nicht wiedergeben. Auf dem iPhone sehe ich eine graue Box mit einem verbietenden Zeichen um die Play-Taste, und auf dem iPad wird es als eine schwarze Box angezeigt.
Ich habe sichergestellt, dass mein Doctype ist <!DOCTYPE html>
, aber ich weiß nicht, wo sonst Debuggen zu starten. Vielleicht liegt es daran, dass der Code per Javascript eingespritzt wird? Irgendwelche Hinweise darauf, wo man anfangen sollte, würden sehr geschätzt werden.
Hier ist die genaue Code, den ich für das Video bin mit:
<!-- "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:
ich coppied die Quelle, die auf meinem iPhone/iPad mit this bookmarklet angezeigt wurde. Ich habe dann diesen Code auf eine einfache HTML-Seite kopiert, die einwandfrei funktioniert. Es muss etwas damit zu tun haben, dass das Video-Tag über Javascript generiert wird. (IE ich auf eine Schaltfläche klicken und das Video-Tag wird ohne eine Seite aktualisiert generiert.)
Ich bin mir nicht sicher, ob das Problem ist mobile Safari, oder das Javascript GWT generiert, aber so oder so muss ich finden ein Workaround.
EDIT (7/23/10):
Ich bin zurückgekommen und das Problem erneut besucht. Seit ich die Frage gepostet habe, habe ich das Layout der Seite vollständig geändert, um LayoutPanels anstelle von DockPanels und vertikalen/horizontalen Panels zu verwenden. Ich habe auch auf GWT 2.0.4 aktualisiert. Mit einem iPad mit iOS 3.2.1 wird immer noch kein Video abgespielt, aber ich bekomme den Posterrahmen, wenn ich ihn spezifiziere (wie zuvor). Mit einem iPhone 4 und iOS 4.0.1 wird das Video ohne Probleme abgespielt. So sieht es aus wie immer das Problem ist, ist es mit iOS 4 behoben.
hey, benutzen Sie UiBinder? –
Ich habe die Implementierung und war mit dem Spielen der gleichen in ipad stecken. Jetzt habe ich festgestellt, dass es sich um ein Problem handelt, das sich auf meinen Server bezieht. –