Skip to content
Permalink
Browse files

[giow] (0) Captions - Stage 5: preparing the ground for timed tracks …

…loading, firing 'waiting' or 'playing' events as appropriate.

git-svn-id: http://svn.whatwg.org/webapps@5074 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information...
Hixie committed May 4, 2010
1 parent f81fcc1 commit 65501243980c243c5504b4259788cf7a2b9eb646
Showing with 125 additions and 85 deletions.
  1. +42 −29 complete.html
  2. +42 −29 index
  3. +41 −27 source
<li><a href=#timed-tracks><span class=secno>4.8.10.10 </span>Timed tracks</a>
<ol>
<li><a href=#timed-track-model><span class=secno>4.8.10.10.1 </span>Timed track model</a></li>
<li><a href=#sourcing-in-band-timed-tracks><span class=secno>4.8.10.10.2 </span>Sourcing in-band timed tracks</a></li>
<li><a href=#sourcing-websrt-timed-tracks><span class=secno>4.8.10.10.3 </span>Sourcing WebSRT timed tracks</a></li>
<li><a href=#timed-track-processing-model><span class=secno>4.8.10.10.4 </span>Timed track processing model</a></li>
<li><a href=#timed-track-processing-model><span class=secno>4.8.10.10.2 </span>Timed track processing model</a></li>
<li><a href=#sourcing-in-band-timed-tracks><span class=secno>4.8.10.10.3 </span>Sourcing in-band timed tracks</a></li>
<li><a href=#sourcing-websrt-timed-tracks><span class=secno>4.8.10.10.4 </span>Sourcing WebSRT timed tracks</a></li>
<li><a href=#timed-track-api><span class=secno>4.8.10.10.5 </span>Timed track API</a></li>
<li><a href=#cue-events><span class=secno>4.8.10.10.6 </span>Event definitions</a></ol></li>
<li><a href=#websrt><span class=secno>4.8.10.11 </span>WebSRT</a>
agent may also set the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute to false,
<a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-play><a href=#event-media-play>play</a></code>, and <a href=#queue-a-task>queue
a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.

<span class=XXX>need to handle timed tracks loading</span>

</p>

<p class=note>User agents are not required to autoplay, and it
is suggested that user agents honor user preferences on the
<code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
<code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>,
the element has not <a href=#ended-playback>ended playback</a>, playback has not
<a href=#stopped-due-to-errors>stopped due to errors</a>, and the element has not
<a href=#paused-for-user-interaction>paused for user interaction</a>.</p>
<a href=#stopped-due-to-errors>stopped due to errors</a>, the element has not <a href=#paused-for-user-interaction>paused
for user interaction</a>, and <span class=XXX>there are no
timed tracks loading</span>.</p>

<p>A <a href=#media-element>media element</a> is said to have <dfn id=ended-playback>ended
playback</dfn> when the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or greater, and
<li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-play><a href=#event-media-play>play</a></code> at the element.</li>

<li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
value <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>,
<code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, or
<code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>,
<a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> at the
element.</li>
<li>

<li><p>Otherwise, the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
value <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
<code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>;
<a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-playing><a href=#event-media-playing>playing</a></code> at the
element.</li>
<p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
value <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>,
<code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, or
<code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>,
<a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> at the
element.</li>

<p>Otherwise, the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
value <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
<code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>;
<a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
named <code title=event-media-playing><a href=#event-media-playing>playing</a></code> at the
element.</p>

</ol></li>
<span class=XXX> handle a timed track loading in this step </span>

<li><p>Set the <a href=#media-element>media element</a>'s <a href=#autoplaying-flag>autoplaying
</ol></li>

</ol><li><p>Set the <a href=#media-element>media element</a>'s <a href=#autoplaying-flag>autoplaying
flag</a> to false.</li>

</ol><hr><p>When the <dfn id=dom-media-pause title=dom-media-pause><code>pause()</code></dfn>


<hr><p>When the <dfn id=dom-media-pause title=dom-media-pause><code>pause()</code></dfn>
method is invoked, the user agent must run the following steps:</p>

<ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has
HTML.</p>
</dd>

</dl><h6 id=sourcing-in-band-timed-tracks><span class=secno>4.8.10.10.2 </span>Sourcing in-band timed tracks</h6>
</dl><h6 id=timed-track-processing-model><span class=secno>4.8.10.10.2 </span>Timed track processing model</h6>

<p>
<p class=XXX>...fetching timed tracks; effect on 'waiting' and 'playing' events


<h6 id=sourcing-websrt-timed-tracks><span class=secno>4.8.10.10.3 </span>Sourcing WebSRT timed tracks</h6>
<h6 id=sourcing-in-band-timed-tracks><span class=secno>4.8.10.10.3 </span>Sourcing in-band timed tracks</h6>

<p class=XXX>...
<p>


<h6 id=timed-track-processing-model><span class=secno>4.8.10.10.4 </span>Timed track processing model</h6>
<h6 id=sourcing-websrt-timed-tracks><span class=secno>4.8.10.10.4 </span>Sourcing WebSRT timed tracks</h6>

<p class=XXX>...


<tbody><tr><td><dfn id=event-media-play title=event-media-play><code>play</code></dfn>
<td><code><a href=#event>Event</a></code>
<td>Playback has begun. Fired after the <code title=dom-media-play><a href=#dom-media-play>play()</a></code> method has returned.
<td>Playback has begun. Fired after the <code title=dom-media-play><a href=#dom-media-play>play()</a></code> method has returned, or when the <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute has caused playback to begin.
<td><code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is newly false.
<tr><td><dfn id=event-media-pause title=event-media-pause><code>pause</code></dfn>
<td><code><a href=#event>Event</a></code>
<td>Playback has been paused. Fired after the <code title=dom-media-pause><a href=#dom-media-pause>pause</a></code> method has returned.
<td>Playback has been paused. Fired after the <code title=dom-media-pause><a href=#dom-media-pause>pause()</a></code> method has returned.
<td><code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is newly true.

<tbody><tr><td><dfn id=event-media-loadedmetadata title=event-media-loadedmetadata><code>loadedmetadata</code></dfn>
<td><code><a href=#event>Event</a></code>
<td>Playback has stopped because the next frame is not available, but the user agent expects that frame to become available in due course.
<td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is newly equal to or less than <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>, and <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is false. Either <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> is true, or the <a href=#current-playback-position>current playback position</a> is not contained in any of the ranges in <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code>. It is possible for playback to stop for two other reasons without <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> being false, but those two reasons do not fire this event: maybe <a href=#ended-playback title="ended playback">playback ended</a>, or playback <a href=#stopped-due-to-errors>stopped due to errors</a>.
<span class=XXX> add to the reasons for this event and the preconditions for this event the case of a timed track loading </span>
<tr><td><dfn id=event-media-playing title=event-media-playing><code>playing</code></dfn>
<td><code><a href=#event>Event</a></code>
<td>Playback has started.
<td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is newly equal to or greater than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>, <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is false, <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> is false, or the <a href=#current-playback-position>current playback position</a> is contained in one of the ranges in <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code>.
<span class=XXX> add to the preconditions for this event that no timed tracks are loading </span>
<tr><td><dfn id=event-media-canplay title=event-media-canplay><code>canplay</code></dfn>
<td><code><a href=#event>Event</a></code>
<td>The user agent can resume playback of the <a href=#media-data>media data</a>, but estimates that if playback were to be started now, the <a href=#media-resource>media resource</a> could not be rendered at the current playback rate up to its end without having to stop for further buffering of content.

0 comments on commit 6550124

Please sign in to comment.
You can’t perform that action at this time.