Contact emails
Eng: ava...@chromium.org, mlam...@chromium.org, zqz...@chromium.org
Spec
No spec.
Some discussion happened here: https://github.com/whatwg/html/issues/976
It will likely followed by minor spec changes.
Summary
Platform will support autoplay of media elements without requiring a user gesture if they are muted (using the muted attribute/property). User gesture will be required to unmute the media element programmatically. If not, the media element will pause.
Media elements using autoplay attribute will only start when they are visible in the user viewport.
Platform will not support autoplay if Data Saver is enabled and / or when the user indicates to turn off autoplay using a specific setting.
Motivation
The web is increasingly media centric. Background videos as design elements, effective use of media as narrative pieces is very common. However, the mobile web today requires a user gesture for playback of media.
However, animating pixels on the Web isn’t very hard. Motivated websites have resorted to two common workarounds -
Animated images - which are bandwidth inefficient (~10x) larger than equivalent video
Decoding video in javascript - this is incredibly power inefficient
Enabling muted autoplay ensures the platform provides the right support for the intent. This also enables increasingly common usecases on the web such as background video as a design element.
Interoperability and Compatibility Risk
Firefox: No public signals (already ship with autoplay by default on mobile)
Edge: No public signals
Safari: Public support
Web developers: Strongly positive
Safari is supportive of the spec changes. It is the only other browser blocking autoplay on mobile.
With the recent spec change of Promise<> return for play(), we now have the full feedback mechanism to developers to indicate successful playback.
Ongoing technical constraints
None.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
As far as Chrome is concerned, this will only ship on Android. However, the feature itself doesn’t have platform specific constraints.
OWP launch tracking bug
Link to entry on the feature dashboard
https://www.chromestatus.com/features/4864052794753024
Requesting approval to ship?
Yes.
Will videos that are off screen also start playing regardless?
If a video has the autoplay attribute and is muted, we will wait for it
to be in viewport to play it. For videos that autoplay using the play
method, we will play as soon as asked to to not break developers
expectations. The reason for the latter behaviour is that we don't want
to introduce too much magic behaviour and there are valid use cases to
start a video while not visible. Our assumption is that most muted
videos are actually <video autoplay muted>. We are introducing metrics
to track this and we are open to make play() follow the autoplay
attribute if needed.
Regarding the spec, there are actually no real spec changes that are
required. The HTMLMediaElement already acknowledge the fact that a media
element playback might be rejected because of user gesture restrictions.
The restriction is exposed to the website via a rejected promise. The
spec leaves the decision regarding rejecting the play request to the UA
and doesn't specify it. What this feature will do is to no longer reject
in some situations. There is no spec changes with regards to this. In
some way, you can this this feature as an un-intervention :)
The only spec changes I think we might want to introduce is more of a
note that changing the muted state might have side effects (ie. pausing
in this case). Otherwise, I think the full plan is fine per spec.
Contact emails
Eng: ava...@chromium.org, mlam...@chromium.org, zqz...@chromium.org
Spec
No spec.
Some discussion happened here: https://github.com/whatwg/html/issues/976
It will likely followed by minor spec changes.
Summary
Platform will support autoplay of media elements without requiring a user gesture if they are muted (using the muted attribute/property). User gesture will be required to unmute the media element programmatically. If not, the media element will pause.
Media elements using autoplay attribute will only start when they are visible in the user viewport.
Platform will not support autoplay if Data Saver is enabled and / or when the user indicates to turn off autoplay using a specific setting.
On Wed, Jun 8, 2016 at 8:22 PM, Alexandre Elias <ael...@chromium.org> wrote:
>
> On Tue, Jun 7, 2016 at 3:37 PM, Mounir Lamouri <mou...@lamouri.fr> wrote:
>>
>> Contact emails
>>
>> Eng: ava...@chromium.org, mlam...@chromium.org, zqz...@chromium.org
>>
>> PM: renga...@chromium.org
>>
>>
>>
>> Spec
>>
>> No spec.
>>
>> Some discussion happened here: https://github.com/whatwg/html/issues/976
>>
>> It will likely followed by minor spec changes.
>>
>>
>>
>> Summary
>>
>> Platform will support autoplay of media elements without requiring a user gesture if they are muted (using the muted attribute/property). User gesture will be required to unmute the media element programmatically. If not, the media element will pause.
>>
>>
>>
>> Media elements using autoplay attribute will only start when they are visible in the user viewport.
>>
>>
>>
>> Platform will not support autoplay if Data Saver is enabled and / or when the user indicates to turn off autoplay using a specific setting.
>
>
> Can this be fully decoupled from Data Saver mode? A core promise of Data Saver from my POV is that bandwidth is saved, but otherwise absolutely nothing else changes in my browsing experience. I believe this would be the first time that Data Saver changes/breaks something user-visible, and in a way that's quite surprising.
>
> I think it would be better for the new specific setting you're introducing to control the autoplay behavior, full stop.
Alternatively, I'd suggest tying this to "Lofi mode" which is triggered when bandwidth is detected to be very low, and whose main effect today is to disable images. That's the "OK to break the web" submode of Data Saver, with an infobar and opt-out button.
Dale, regarding playing videos off tree to render them with WebGL, I
would say that given the principles used to say that we should allow
autoplay muted video there is no reason why it shouldn't be allowed. I
guess if the video was set as muted, it would work. In the future, we
might not required the muted attribute if we can detect that there is no
audio track. Though it's not planned for the first step.
Great to see. It seems like this will enable autoplay with sound in some cases. Is that right?
I wonder if it uses the same heuristic as their version of plugin power saver.
-Darin