- From: Chris Pearce <chris@pearce.org.nz>
- Date: Tue, 03 Feb 2009 17:06:14 +1300
I want to clarify something about <media>'s child <source> element... In the <source> element spec [ http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element ] it says: > If a source element is inserted into a media element that is already > in a document and whose networkState is in the NETWORK_EMPTY state, > the user agent must queue a task that implicitly invokes the load() > method on the media element, and ignores any resulting exceptions. So we only trigger a load when adding a child <source> element to a <media> element if the media element is in NETWORK_EMPTY networkState. Additionally, in the spec for <media>'s src attribute [ http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#attr-media-src ] it says: > If the src attribute of a media element that is already in a document > and whose networkState is in the NETWORK_EMPTY state is added, > changed, or removed, the user agent must queue a task that implicitly > invokes the load() method on the media element, and ignores any > resulting exceptions. Almost the same, except that we invoke the load algorithm when the src is removed or changed in this case. I have the following questions: (1) Should removing a media element's child source element while the networkState is NETWORK_EMPTY cause the load() algorithm to be invoked? This would match the behviour of removing the media element's src attribute when networkState is NETWORK_EMPTY. It seems that in order to start a load in an already loaded media element, you must change the src attribute or add source element children to the media element, and then call load() on the media element. Whereas when you initially create the media element, the first time you add the src attribute or add a child source element to the media element, you'll start an asynchronous load immediately. (2) Why don't we invoke load() whenever a media element's src attribute or <source> children are changed, regardless of networkState? That way changes to the media's src/source other than the first change would have the same effect as first change, i.e. they'd have an immediate effect, causing load() to be invoked. Thanks, Chris Pearce.
Received on Monday, 2 February 2009 20:06:14 UTC