iOS is Apple’s operating system that powers iPhones, iPod Touches, and iPads. iOS 3.2 has a number of issues with HTML5 video.
- iOS will not recognize the video if you include a
posterattribute of the
<video>element allows you to display a custom image while the video is loading, or until the user presses “play.” This bug is fixed in iOS 4.0, but it will be some time before users upgrade.
- If you have multiple
<source>elements, iOS will not recognize anything but the first one. Since iOS devices only support H.264+AAC+MP4, this effectively means you must always list your MP4 first. This bug is also fixed in iOS 4.0.
Android is Google’s operating system that powers a number of different phones and handheld devices. Android (up to and including 2.2, the latest version at time of writing) has a number of issues with HTML5 video.
<source>elements confuses Android greatly. The only way to get it to recognize a video source is, ironically, to omit the
typeattribute altogether and ensure that your H.264+AAC+MP4 video file’s name ends with an
.mp4extension. This does not appear to affect any other browser’s ability to detect support for the video; in the absence of a
typeattribute, other browsers appear to guess based on file extension as well. You can still include the
typeattribute on your other video sources, since H.264 is the only video format that Android devices support at the moment.
controlsattribute is not supported. There are no ill effects to including it, but Android will not display any user interface controls for a video. You will need to provide your own user interface controls. At a minimum, you should provide a script that starts playing the video when the user clicks the video.