- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Fri, 29 Aug 2014 13:45:42 +0200
- To: "public-media-capture@w3.org" <public-media-capture@w3.org>
One question I was asked the other day: How do I get information about what happened to a MediaStreamTrack when it's ended? What we currently have is an event handler of type "ended", which uses the Event interface, which, as defined in http://www.w3.org/TR/dom/#events has the interface: [Constructor(DOMString type, optional EventInit eventInitDict), Exposed=Window,Worker] interface Event { readonly attribute DOMString type; readonly attribute EventTarget? target; readonly attribute EventTarget? currentTarget; const unsigned short NONE = 0; const unsigned short CAPTURING_PHASE = 1; const unsigned short AT_TARGET = 2; const unsigned short BUBBLING_PHASE = 3; readonly attribute unsigned short eventPhase; void stopPropagation(); void stopImmediatePropagation(); readonly attribute boolean bubbles; readonly attribute boolean cancelable; void preventDefault(); readonly attribute boolean defaultPrevented; [Unforgeable] readonly attribute boolean isTrusted; readonly attribute DOMTimeStamp timeStamp; void initEvent(DOMString type, boolean bubbles, boolean cancelable); }; dictionary EventInit { boolean bubbles = false; boolean cancelable = false; }; The "type" field is set to "ended" if I understand the spec correctly. We COULD get information back in a way that's consistent with other interfaces if we did two changes: - Declare the type of interface for "ended" to be MediaStreamErrorEvent - Declare the "error" attribute of the MediaStreamErrorEvent to be nullable (for the case where there is no error) We could also make a new event type with a different interface than MediaStreamErrorEvent, or do something entirely different - but not offering any way to differentiate between "the track ended because the user called stop() on it" and "the track ended because the driver crashed and there's memory corruption in the buffers" seems like a non-optimal situation. What do people think? Harald
Received on Friday, 29 August 2014 11:46:16 UTC