[whatwg] <video> element feedback

On 3/20/07, Ian Hickson <ian at hixie.ch> wrote:
> On Wed, 21 Mar 2007, Lachlan Hunt wrote:
> > >
> > > I only included togglePause() because Flash supports it and some
> > > people asked for it; I'm not convinced we should keep it.
> >
> > I'm in favour of dropping it.  It's an unnecessary API for browsers to
> > support.  It adds nothing that can't be done with play()/pause() and an
> > if statement.
> >
> > if (video.state == HTMLVideoElement.PAUSED) {
> >     video.play();
> > } else {
> >     video.pause();
> > }
>
> On Tue, 20 Mar 2007, Jeff Cutsinger wrote:
> >
> > +1.
>
> I've commented it out for now. Let's see how many people complain.

No objections. Also +1.

> On Tue, 20 Mar 2007, Shadow2531 wrote:
> >
> > So, if one used <video src="200x200.ogg" style="width: 800px; height:
> > 800px;"></video> , there'd be no way to make the video display at 200 x
> > 200 because it would always scale?
>
> Currently, correct.

Thanks.

> > If so, if one wanted to simulate the look I'm describing, would one have
> > to do the following for example?
> >
> > <figure style="width: 800px; height: 800px; background: #000;">
> >    <video src="200x200.ogg" style="width: 200px; height: 200px;"></video>
> > </figure>
> >
> > (Just want to be sure.)
>
> Yeah, you could do that.

Thanks

> > I'm thinking more along the lines of a local HTML page that embeds a
> > local video (one of your favorites for example) where when you load the
> > page (via a bookmark or a panel for example), it automatically starts
> > and is set to loop (because you authored it that way).
>
> Well for local content we don't need to worry about interoperability
> (since the user makes it for himself on his user agent), so user agents
> are free to add vendor extensions to do this, or the user could use JS, or
> the user could do something that doesn't involve HTML at all, that's not
> really our problem.

Point taken.

> > So, this is all that is needed to do autostart?
> >
> > window.onload = function() {
> >    document.getElementsByTagName("video")[0].play();
> > };
>
> That will do it, yes, assuming the user agent doesn't block it (the spec
> allows that, under use control).

Thanks

> > > > However, if JS is needed for the video element to function at all,
> > > > then the video element needs to fall back if JS is turned off.
> > >
> > > Interesting point.
> >
> > Yes, since JS is required, if JS is off, the browser should display the
> > alternate content.
> >
> > > You can do this with JS, of course (and that's the preferred way; hide
> > > the fallback when you have JS).
> >
> > Are you saying that with JS on, the fallback content will be displayed
> > in addition to the video and you have to use JS to hide the fallback
> > content like the following?
> >
> > window.onload = function() {
> >    var x = document.getElementsByTagName("video")[0];
> >    x.play();
> >    x.innerHTML = "";
> > };
>
> No, I meant something like:
>
>    <section id="video">
>      <p>You need JavaScript turned on to do video.</p>
>    </section>
>    <script>
>      // clear the fallback
>      var v = document.getElementById('video');
>      while (v.hasChildNodes) v.removeChild(v.firstChild);
>
>      // get the data to play
>      var src = 'video.ogg';
>
>      // create the UI
>      default xml namespace = "http://www.w3.org/1999/xhtml";
>      var ui = <div>
>                 <p><video src={src}></video></p>
>                 <p>
>                  <input type="button" value="Play" onclick="vPlay()"/>
>                  <input type="button" value="Pause" onclick="vPause()"/>
>                 </p>
>               </div>;
>      var video = ui..video.domNode();
>      function vPlay() { video.play() }
>      function vPause() { video.pause() }
>      v.appendChild(ui.domNode());
>
>      // start playback
>      video.play();
>    </script>
>
> Or, probably better:
>
>    <section id="no-js-warning">
>      <p>You need JavaScript turned on to do video.</p>
>    </section>
>    <section id="video">
>      <p><video src="video.ogg"></p>
>      <p>
>        <input type="button" value="Play" onclick="vPlay()"/>
>        <input type="button" value="Pause" onclick="vPause()"/>
>      </p>
>    </section>
>    <script>
>      // clear the fallback
>      var f = document.getElementById('no-js-warning');
>      f.parentNode.removeChild(f);
>
>      // UI functions
>      function vPlay() { video.play() }
>      function vPause() { video.pause() }
>
>      // start playback
>      video.play();
>    </script>

Thanks. I'm all set on this now.

-- 
burnout426

Received on Wednesday, 21 March 2007 03:41:55 UTC