video标签在播放视频时的各种状态

On Mon, 18 Oct 2010 01:01:00 +0200, Chris Pearce < chris@pearce.org.nz> wrote:

 In the description of the media ready states for HAVE_ENOUGH_DATA [1],
the spec says:

If the autoplaying flag
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#autoplaying-flag>

is true, and the |paused
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom-media-paused>|

attribute is true, and the media element
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#media-element>
has an |autoplay
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#attr-media-autoplay>|

attribute specified, and the media element
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#media-element>
is in a |Document
< http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#document>|
whose browsing context
< http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#browsing-context>

did not have the sandboxed automatic features browsing context flag
< http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#sandboxed-automatic-features-browsing-context-flag>
set when the |Document
< http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#document>|

was created, then the user agent may also set the |paused
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom-media-paused>|

attribute to false, queue a task
< http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task>

to fire a simple event
< http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#fire-a-simple-event>
named |play
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-play>|,
and queue a task
< http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task>

to fire a simple event
< http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#fire-a-simple-event>
named |playing
< http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-playing>|.

This means that we'll will only autoplay if a media element is in a
document. Why do we prevent media elements not in a document from
autoplaying? We allow audio from a media element not in a document to
play, why not allow autoplay to work while not in a document too?

I note that Firefox, Chrome, Safari and Opera all autoplay when a media
element is not in a document. It looks like IE9 Beta never autoplays
unless the media element is hard coded in the HTML file with an autoplay
attribute; IE9 doesn't seem to honour autoplay set from script.

Unless there's a good reason not to, and since most browsers have
implemented autoplay when not in a document anyway, perhaps we should
update the spec to match the implemented behaviour?


Regards,
Chris Pearce.

[1]
http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom-media-have_enough_data

Subversion is too slow to say exactly when, but "and the media element is in a Document whose browsing context did not have the sandboxed automatic features browsing context flag set when the Document was created" was added to the spec quite recently, after Opera implemented autoplay anyway.

Assuming the change in behavior was accidental, the spec should instead say "and the media element is not in a Document whose browsing context had the sandboxed automatic features browsing context flag set when the Document was created".

--
Philip Jägenstedt
Core Developer
Opera Software
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值