I'm working on a marketing page for an iPhone application that has a silent screencast of the app in action which I want to autoplay in a loop.

Since I can expect most users to at least have QuickTime, if not Safari or Firefox, I'm using the Video for Everybody technique (which uses a multiple-source video tag, then QuickTime, then Flash, in that order). I've modified it by adding the autoplay and loop attributes and removing the playback controls. However, on Safari, the presence of the poster attribute seems to disable autoplay.

If I remove the poster attribute, it autoplays correctly, but displays nothing on screen while the video is loading; if I turn on poster, the video never starts playing. The poster attribute does not have this effect on Firefox. (There the loop attribute doesn't work, but that's a known limitation of the browser.)

So what the heck is Safari doing here? Is this a bug I can expect them to fix or is it supposed to behave that way? Any recommendations for a workaround?

(Note if you're looking at the code: it's quite incomplete in various ways. The screenshot to the right definitely reflects that fact.)

2 answers

This was chosen as the best answer

I ultimately ended up inserting a JavaScript hack that checks the browser and, if it's the current version of Safari, nulls out the poster attribute. Hopefully future versions of Safari will fix this issue.

Answered over 9 years ago by Brent Royal-Gordon

Can you try linking to the various objects with relative links, rather than full url's? there may be some protective 'features' in safari that prevent embedding cross site objects.

Just a thought, nothing to back it up but instinct.

Answered over 9 years ago by Tony Crockford
  • Tony, this is better off as a comment than as an "answer". Divya Manian over 9 years ago
  • it's my answer, to the problem - a suggestion that may fix it - not a comment, so IMHO it's an answer Tony Crockford over 9 years ago