B-Interactive / cloudflare-stream-wordpress

A fork of the official Cloudflare Stream plugin for WordPress.
GNU General Public License v2.0
16 stars 3 forks source link

Preload behaviour for video embed #19

Open B-Interactive opened 2 years ago

B-Interactive commented 2 years ago

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:

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:

  1. Is auto the appropriate default when preloading is requested?
  2. Might the ability for the user to specify preload behaviour of beginning (auto) or entire video (true) be useful?
davidmpurdy commented 2 years ago

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:

It seems like a toggle probably does work for the block:

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.

B-Interactive commented 2 years ago

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.