- From: Adam Bergkvist <adam.bergkvist@ericsson.com>
- Date: Tue, 16 Apr 2013 14:01:55 +0200
- To: "public-media-capture@w3.org" <public-media-capture@w3.org>
Hi
I was asked by the editor's team to write up a proposal on some new text
for the spec that clarifies the enabled/muted states of MediaStreamTrack.
This is largely based on Martin's mail [1] on this topic, with a simpler
state enum and enabled and muted as individual attributes.
/Adam
[1]
http://lists.w3.org/Archives/Public/public-media-capture/2013Mar/0093.html
===================================================
*** MediaStreamTrack Lifecycle and Media Flow ***
The MediaStreamTrack interface lets the script control a single flow of
media. The live state indicates that the track source is active and the
track renders media.
A muted or disabled track renders either silence (audio), black frames
(video), or a zero-information-content equivalent. The muted/unmuted
state of a track reflects if the source provides any media at this
moment. The enabled/disabled state is under application control and
determines if the track outputs media (to its consumers). Hence, media
from the source only flows when a track is both unmuted and enabled.
A track is muted when the source is temporarily unable to provide the
track with data. A track can be muted by a user. Often this action is
outside the control of the application. This could be as a result of the
user hitting a hardware switch, or toggling a control in the operating
system or browser chrome. A track can also be muted by the user agent.
For example, a track that is a member of a MediaStream, received via a
RTCPeerConnection, is muted if the application on the other side
disables the corresponding track in the MediaStream being sent. (Add
text about firing muted/unmuted events)
Applications are able to enable or disable a track to prevent it from
rendering media from the source. A muted track will however, regardless
of the enabled state, render silence and blackness. A disabled track is
logically equivalent to a muted track, from a consumer point of view.
interface MediaStreamTrack {
...
attribute boolean enabled;
readonly attribute boolean muted;
attribute EventHandler onmute;
attribute EventHandler onunmute;
readonly attribute MediaStreamTrackState readyState;
attribute EventHandler onstarted;
attribute EventHandler onended;
...
};
enum MediaStreamTrackState {
"new",
"live",
"ended"
};
Received on Tuesday, 16 April 2013 12:02:24 UTC