diff --git a/mediasession.bs b/mediasession.bs index f57c735..c5b6df2 100644 --- a/mediasession.bs +++ b/mediasession.bs @@ -178,12 +178,12 @@ conforming IDL fragments, as described in the Web IDL specification. [[!WEBIDL]]
Default
and Content
content when playback begins.
@@ -379,8 +379,8 @@ fourth columns.
Default
and Content
content when
playback begins.
@@ -431,8 +431,8 @@ fourth columns.
Default
,
Content
, Transient
and
@@ -541,6 +541,90 @@ fourth columns.
++ + + Initially the term audio-producing objects + is taken to only refer to media element objects. In the future it may + be possible to extend this specification to allow e.g. {{AudioContext}} + objects to also be attached to a media session as audio-producing + objects. +
+ +A media session may have one or more audio-producing objects +attached to it; called its audio-producing participants. A +media session must keep a list of active audio-producing +participants that consists of zero of more audio-producing objects. + +Audio-producing participants are attached to a +media session when they are invoked; at that point becoming one of +media session's active audio-producing participants. +Audio-producing participants are detached from a media session +when they are released; at that point no longer being one of media +session's active audio-producing participants. + +When the user agent is to pause a given audio-producing +object it must run the following steps: + ++ This algorithm currently only supports audio-producing objects that + are media elements. +
++ This algorithm currently only supports audio-producing objects that + are media elements. +
++ When an audio-producing object is ducked any reduction + in volume applied by the user agent is not intended to be observable to web + pages. +
+Default
or Content
then
indefinitely pause all of interrupted media
- session's active participating media elements and set
+ session's active audio-producing participants
+ and set
interrupted media session's current state to
idle
.
@@ -734,8 +820,8 @@ steps.
Optionally, based on platform conventions, the user agent must
prevent any hardware and/or software media keys from controlling
playback of
- interrupted media session's active participating media
- elements.
+ interrupted media session's active audio-producing
+ participants.
Content
then
duck
all of interrupted media session's active
- participating media elements and set
+ audio-producing participants and set
interrupted media session's
current state to interrupted
.
@@ -777,8 +863,8 @@ steps.
lt="transient solo media state">Transient Solo then
pause all of
interrupted media session's
- active participating media elements and set current
- media session's current state to
+ active audio-producing participants and set
+ current media session's current state to
interrupted
.
@@ -845,7 +931,7 @@ The media session continuation algorithm takes one argument,
or
Content
, then
unduck all of incumbent media session's
- active participating media elements
+ active audio-producing participants
and set incumbent media session's current state to
active
.
@@ -864,9 +950,9 @@ The media session continuation algorithm takes one argument,
lt="transient media state">Transient, or
Transient Solo
,
then unpause the
- incumbent media session's active participating media
- elements and set incumbent media session's current
- state to
+ incumbent media session's active audio-producing
+ participants and set incumbent media session's
+ current state to
active
.
@@ -896,7 +982,8 @@ user agent must run the following steps:
If {{visibilityState}} is "{{hidden}}" [[PAGE-VISIBILITY]] and
s's current state is active
, then pause all of s's
- active participating media elements and set s's
+ active audio-producing participants and set
+ s's
current state to interrupted
, then terminate these substeps and
continue at the next available s.
@@ -905,7 +992,7 @@ user agent must run the following steps:
If {{visibilityState}} is "{{visible}}" [[PAGE-VISIBILITY]]
and s's current state is interrupted
, then unpause all of
- s's active participating media elements and set
+ s's active audio-producing participants and set
s's current state to active
, then terminate these substeps and continue at
the next available s.
@@ -927,7 +1014,7 @@ The media session release algorithm takes one argument,
If the algorithm reaches this step a media session can not have any - active participating media elements. + active audio-producing participants.
idle
and applies any changes necessary to its
- active participating media elements.
+ active audio-producing participants.
@@ -1172,10 +1259,10 @@ must run the following steps:
A media session represents one or more audio-producing objects within -the same top-level browsing context that share the same media session -category. Each media session then defines the interactions of those -audio-producing objects with both the underlying platform and other -audio-producing objects belonging to other media sessions within the user -agent.
+A media session represents one or more audio-producing objects +within the same top-level browsing context that share the same media +session category. Each media session then defines the interactions of +its audio-producing objects with both the underlying platform and other +audio-producing objects belonging to other media sessions within +the user agent.
A media session may have a media remote controller that @@ -465,7 +466,7 @@
Default
and Content
content when playback begins.
@@ -624,7 +625,7 @@ Default
and Content
content when
playback begins.
@@ -687,7 +688,7 @@ Default
,
Content
, Transient
and
Transient Solo
@@ -835,7 +836,112 @@ An audio-producing object is any object or element that is capable of +emitting sound within the user agent and is therefore also potentially capable +of interacting with the media focus system available in different underlying +platforms.
+ + +
+
+
+ Initially the term audio-producing objects
+ is taken to only refer to media element objects. In the future it may
+ be possible to extend this specification to allow e.g. AudioContext
+ objects to also be attached to a media session as audio-producing
+ objects.
+
A media session may have one or more audio-producing objects +attached to it; called its audio-producing participants. A +media session must keep a list of active audio-producing +participants that consists of zero of more audio-producing objects.
+ + +Audio-producing participants are attached to a +media session when they are invoked; at that point becoming one of +media session’s active audio-producing participants. +Audio-producing participants are detached from a media session +when they are released; at that point no longer being one of media +session’s active audio-producing participants.
+ + +When the user agent is to pause a given audio-producing +object it must run the following steps:
+ + ++ This algorithm currently only supports audio-producing objects that + are media elements. +
+ + + +When the user agent is to indefinitely pause a given +audio-producing object, the user agent must pause +audio-producing object and, then proceed to remove it from its +associated media session’s list of +active audio-producing participants.
+ + +When the user agent is to unpause a given audio-producing +object it must run the following steps:
+ + ++ This algorithm currently only supports audio-producing objects that + are media elements. +
+ + + +When an audio-producing object is to duck the user agent must +ensure its output volume is lowered.
+ + +When an audio-producing object is to unduck the user agent +should restore its output volume to the same level that was observed prior to +the original corresponding duck request.
+ + ++ When an audio-producing object is ducked any reduction + in volume applied by the user agent is not intended to be observable to web + pages. +
+ + +The fetch steps for a given media session media
@@ -881,7 +987,7 @@ The media session invocation algorithm takes one argument,
@@ -934,8 +1040,9 @@ A media session may be interrupted at any time after its
@@ -1063,7 +1170,8 @@
-
’s active audio-producing participants
+ and set
interrupted media session’s current state to
4.4. Activating a media session
+ 4.5. Activating a media session
4.5. Interrupting a media session
+ 4.6. Interrupting a media session
<
type is
Default
or Content
then
indefinitely pause all of interrupted media
- session’s active participating media elements and set
+ sessionidle
.
@@ -1092,8 +1200,8 @@
Default
or Content
then
duck
- all of interrupted media session’s active
- participating media elements and set
+ all of interrupted media session’s active
+ audio-producing participants and set
interrupted media session’s
current state to interrupted
.
@@ -1150,8 +1258,8 @@ Content
, Transient
or Transient Solo
then
pause all of
interrupted media session’s
- active participating media elements and set current
- media session’s current state to
+ active audio-producing participants and set
+ current media session’s current state to
interrupted
.
@@ -1242,7 +1350,7 @@ Content
, then
unduck all of incumbent media session’s
- active participating media elements
+ active audio-producing participants
and set incumbent media session’s current state to
active
.
@@ -1268,9 +1376,9 @@ Content
, Transient
, or
Transient Solo
,
then unpause the
- incumbent media session’s active participating media
- elements and set incumbent media session’s current
- state to
+ incumbent media session’s active audio-producing
+ participants and set incumbent media session’s
+ current state to
active
.
@@ -1310,7 +1418,8 @@ visibilityState
is "hidden
" [PAGE-VISIBILITY] and
s’s current state is active
, then pause all of s’s
- active participating media elements and set s’s
+ active audio-producing participants and set
+ s’s
current state to interrupted
, then terminate these substeps and
continue at the next available s.
@@ -1319,7 +1428,7 @@ visibilityState
is "visible
" [PAGE-VISIBILITY]
and s’s current state is interrupted
, then unpause all of
- s’s active participating media elements and set
+ s’s active audio-producing participants and set
s’s current state to active
, then terminate these substeps and continue at
the next available s.
@@ -1331,7 +1440,7 @@ The media session release algorithm takes one argument, @@ -1347,8 +1456,8 @@
If the algorithm reaches this step a media session can not have any - active participating media elements. + active audio-producing participants.
@@ -1644,7 +1753,7 @@idle
and applies any changes necessary to its
- active participating media elements.
+ active audio-producing participants.
@@ -1660,12 +1769,12 @@ When a media element is to pause, the user agent must run that -media element’s internal pause steps.
- - -When a media element is to indefinitely pause, the user agent -must pause that media element and, then proceed to remove it from -its current media session’s list of active participating media -elements.
+When the user agent is to pause a media element for a given a +media element it must run that media element’s internal +pause steps.
@@ -2455,17 +2555,9 @@play()
method.
-
-
- When a media element is to duck the user agent must ensure its -output volume is lowered.
- - -When a media element is to unduck the user agent should -restore its output volume to the same level that was observed prior to the -original corresponding duck request.
+When the user agent is to unpause a media element for a given a
+media element it must invoke that media element’s play()
+method.