diff --git a/getusermedia.html b/getusermedia.html index 685435bf..b48b891e 100644 --- a/getusermedia.html +++ b/getusermedia.html @@ -847,13 +847,17 @@
If all {{MediaStreamTrack}}s that are using the same source are [= track/ended =], the source will be [= source/stopped =].
-When a {{MediaStreamTrack}} object ends for any - reason (e.g., because the user rescinds the permission for the page to - use the local camera, or because the application invoked the - {{MediaStreamTrack/stop()}} method on - the {{MediaStreamTrack}} object, or because the User - Agent has instructed the track to end for any reason) it is said to be +
When the application has invoked the {{MediaStreamTrack/stop()}} + method on a {{MediaStreamTrack}} object, or when the [=source=] of a + {{MediaStreamTrack}} ends production of live samples to its tracks, + whichever is sooner, a {{MediaStreamTrack}} is said to be ended.
+For camera and microphone sources, the reasons for a source to end + [=ended|end=] its tracks for reasons other than + {{MediaStreamTrack/stop()}} are [=implementation-defined=] + (e.g., because the user rescinds the permission for the page to + use the local camera, or because the User + Agent has instructed the track to end for any reason).
When a {{MediaStreamTrack}} track ends for any reason other than the {{MediaStreamTrack/stop()}} method being invoked, the [=User Agent=] MUST queue a task that runs the following @@ -899,14 +903,15 @@
Muted refers to the input to the - {{MediaStreamTrack}}. If live samples are not made - available to the {{MediaStreamTrack}} it is muted.
+ {{MediaStreamTrack}}. Live samples MUST NOT be made available to a + {{MediaStreamTrack}} while it is [=muted=].{{Muted}} is outside the control of web applications, but can be observed by the application by reading the {{MediaStreamTrack/muted}} attribute and listening to the associated events {{mute}} and {{unmute}}. The reasons for a {{MediaStreamTrack}} to be muted are defined by its source.
-For camera and microphone sources, there can be - several reasons for a {{MediaStreamTrack}} to be muted: +
For camera and microphone sources, the reasons to [=muted|mute=] are + [=implementation-defined=]. This allows user agents to implement privacy + mitigations in situations like: the user pushing a physical mute button on the microphone, the user closing a laptop lid with an embedded camera, the user toggling a control in the operating system, the user clicking a mute button in the @@ -917,9 +922,13 @@
Whenever the [=User Agent=] initiates such a change, it MUST queue a +
Whenever the [=User Agent=] initiates such an [= implementation-defined=] + change for camera or microphone sources, it MUST queue a task, using the user interaction task source, to [=set a track's muted state=] to the state desired by the user.
+To set a track's muted state to newState, the [=User Agent=] MUST run the following steps: