Preload behaviour for video embed
Touched on here, the Cloudflare Stream Player's preload attribute has a little more to it than simply true or false. The attribute is considered a hint for browsers on how to handle preloading, so the behaviour may vary. If I understand, the hints mean the following:
-
preload=none/preload=metadata/ not specifying anything Any of the above will just load the metadata needed to start video playback when requested. -
preload=autoWill preload the beginning of the video. -
preload=trueWill preload the entire video.
As of 1cb20385ab9c7a9754a29d0b7315b36afadb45f5, preload=auto is used when preload is requested by a shortcode. I considered this a safer option, as preload=true could result in bill shock, and a poor end-user experience, if the implications aren't fully understood.
Open to discussion:
- Is
autothe appropriate default when preloading is requested? - Might the ability for the user to specify preload behaviour of beginning (
auto) or entire video (true) be useful?
My understanding is that those are the only three valid options for the preload attribute (none, metadata, and auto).
Does true actually do anything (different than auto)? If not, I was apparently just being pedantic in my earlier comment about it not being binary. I can't see a real-world reason to set it to none (and Stream may not respect it anyway), so in practice it's probably a binary of metadata or auto.
I think the shortcode could map the values:
autoandtrue->autometadataandfalse->metadatanone->none
It seems like a toggle probably does work for the block:
- "on" state ->
auto - "off" state ->
metadata
If nothing is set in the shortcode, metadata seems like a good default since it's the recommendation in the spec (per the above MDN link) and the Stream platform default.
I think you're right, it is only those three (none, metadata, and auto). I went and re-checked my references and it looks like I misunderstood it. I thought I saw true described in a forum comment, but I can't put my finger on it now.
In any case, that considerably simplifies how it's approached.