diff --git a/source b/source index a5fec4d0a94..d6c008da26a 100644 --- a/source +++ b/source @@ -32296,6 +32296,7 @@ interface HTMLMediaElement : HTMLElement { readonly attribute boolean paused; attribute double defaultPlaybackRate; attribute double playbackRate; + attribute boolean preservesPitch; readonly attribute TimeRanges played; readonly attribute TimeRanges seekable; readonly attribute boolean ended; @@ -32354,10 +32355,6 @@ interface HTMLMediaElement : HTMLElement { so that the author's controls can get away of the UA's --> - -

Media elements are used to present audio data, or video and audio data, to the user. This is referred to as media data in this section, since this section applies equally to media elements for audio or for @@ -34594,6 +34591,19 @@ interface MediaError { +

media . preservesPitch
+ +
+ +

Returns true if pitch-preserving algorithms are used when the playbackRate is not 1.0. The default value is true.

+ +

Can be set to false to have the media resource's audio pitch change up or down + correspondingly to the playbackRate. This is useful + for aesthetic and performance reasons.

+ +
+
media . played
@@ -34837,12 +34847,19 @@ interface MediaError { element is potentially playing, change the playback speed.

-

When the defaultPlaybackRate - or playbackRate attributes change value (either by - being set by script or by being changed directly by the user agent, e.g. in response to user - control) the user agent must queue a task to fire - an event named ratechange at the media - element.

+

When the defaultPlaybackRate or playbackRate attributes change value (either by being set + by script or by being changed directly by the user agent, e.g. in response to user control) the + user agent must queue a task to fire an + event named ratechange at the media + element. The user agent must process attribute changes smoothly and must not introduce any + perceivable gaps or muting of playback in response.

+ +

The preservesPitch attribute, on + getting, must return true if a pitch-preserving algorithm is in effect during playback. On + setting, the user agent must correspondingly switch the pitch-preserving algorithm on or off + without any perceivable gaps or muting of playback.


@@ -35104,8 +35121,10 @@ interface MediaError { data-x="dom-media-playbackRate">playbackRate is so low or so high that the user agent cannot play audio usefully, the corresponding audio must also be muted. If the element's playbackRate is not 1.0, the user agent may apply pitch - adjustments to the audio as necessary to render it faithfully.

+ data-x="dom-media-playbackRate">playbackRate is not 1.0 and preservesPitch is true, the user agent must apply pitch + adjustment to preserve the original pitch of the audio. Otherwise, the user agent must speed up + or slow down the audio without any pitch adjustment.

When a media element is potentially playing, its audio data played must be synchronized with the current playback position, at the element's @@ -120807,6 +120826,7 @@ INSERT INTERFACES HERE Ashley Gullen, Ashley Sheridan, Atsushi Takayama, + Attila Haraszti, Aurelien Levy, Ave Wrigley, Avi Drissman,