欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

HTML5 Audio/Video 标签属性与事件 video 有大用

shiping1 的头像

标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条  
1  
 
标签属性:src:视频的URLposter:视频封面,没有播放时显示的图片preload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条width:视频宽度height:视频高度 
 
1  
 
获取HTMLVideoElement和HTMLAudioElement对象 
 
1 //audio可以直接通过new创建对象 
 
2 Media = newAudio("http://www.abc.com/test.mp3");  
 
3 //audio和video都可以通过标签获取对象 
 
4 Media = document.getElementByIdx_x("media"); 
 
Media方法和属性: 
 
HTMLVideoElement 和 HTMLAudioElement 均继承自 HTMLMediaElement
 
01 //错误状态 
 
02 Media.error; //null:正常 
 
03 Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效 
 
04 //网络状态 
 
05 Media.currentSrc; //返回当前资源的URL 
 
06 Media.src = value; //返回或设置当前资源的URL 
 
07 Media.canPlayType(type); //是否能播放某种格式的资源 
 
08 Media.networkState; //0.此元素未初始化  1.正常但没有使用网络  2.正在下载数据  3.没有找到资源 
 
09 Media.load(); //重新加载src指定的资源 
 
10 Media.buffered; //返回已缓冲区域,TimeRanges 
 
11 Media.preload; //none:不预载 metadata:预载资源信息 auto: 
 
12 //准备状态 
 
13 Media.readyState;   //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA 
 
14 Media.seeking; //是否正在seeking 
 
15 //回放状态 
 
16 Media.currentTime = value; //当前播放的位置,赋值可改变位置 
 
17 Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0 
 
18 Media.duration; //当前资源长度 流返回无限 
 
19 Media.paused; //是否暂停 
 
20 Media.defaultPlaybackRate = value;//默认的回放速度,可以设置 
 
21 Media.playbackRate = value;//当前播放速度,设置后马上改变 
 
22 Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文 
 
23 Media.seekable; //返回可以seek的区域 TimeRanges 
 
24 Media.ended;    //是否结束 
 
25 Media.autoPlay; //是否自动播放 
 
26 Media.loop; //是否循环播放 
 
27 Media.play();   //播放 
 
28 Media.pause();  //暂停 
 
29 //控制 
 
30 Media.controls;//是否有默认控制条 
 
31 Media.volume = value; //音量 
 
32 Media.muted = value; //静音 
 
33 //TimeRanges(区域)对象 
 
34 TimeRanges.length; //区域段数 
 
35 TimeRanges.start(index) //第index段区域的开始位置 
 
36 TimeRanges.end(index) //第index段区域的结束位置 
36)下面是 停止播放 结束播放 有大用
var myVideo = document.getElementsByTagName('video')[0];
可以换成
document.getElementById('videoId');
 
<video src="myMovie.m4v" poster="poster.jpg" id="videoId"></video>
[解决办法]
额。来晚了。。。
停止的话...
 
myVideo.currentTime = 0;    //属性设置或返回音频/视频播放的当前位置(以秒计)。当设置该属性时,播放会跳跃到指定的位置。
myVideo.pause();
 
 
事件: 
 
01 eventTester = function(e){  
 
02         Media.addEventListener(e,function(){  
 
03             console.log((newDate()).getTime(),e); //仅仅这一行代码好像有问题 
 
04         });  
 
05     }  
 
06    
 
07     eventTester("loadstart");   //客户端开始请求数据 
 
08     eventTester("progress");    //客户端正在请求数据 
 
09     eventTester("suspend");     //延迟下载 
 
10     eventTester("abort");       //客户端主动终止下载(不是因为错误引起), 
 
11     eventTester("error");       //请求数据时遇到错误 
 
12     eventTester("stalled");     //网速失速 
 
13     eventTester("play");        //play()和autoplay开始播放时触发 
 
14     eventTester("pause");       //pause()触发 
 
15     eventTester("loadedmetadata");  //成功获取资源长度 
 
16     eventTester("loadeddata");  // 
 
17     eventTester("waiting");     //等待数据,并非错误 
 
18     eventTester("playing");     //开始回放 
 
19     eventTester("canplay");     //可以播放,但中途可能因为加载而暂停 
 
20     eventTester("canplaythrough"); //可以播放,歌曲全部加载完毕 
 
21     eventTester("seeking");     //寻找中 
 
22     eventTester("seeked");      //寻找完毕 
 
23     eventTester("timeupdate");  //播放时间改变 
 
24     eventTester("ended");       //播放结束 
 
25     eventTester("ratechange");  //播放速率改变 
 
26     eventTester("durationchange");  //资源长度改变 
 
27     eventTester("volumechange");    //音量改变 

来自 http://blog.sina.com.cn/s/blog_51e565eb01018tbp.html

HTML5的Video标签的属性,方法和事件汇总

字数899 阅读8424 评论1 

前段时间写了一个基于html5 video的视频播放器,从起初的对其不了解,然后到能够写一个基本完善的自定义播放器。在这个过程中,对video标签的属性,方法,事件有了个全面的认识。下面分类列出来一下。

<video>标签的属性


  • src :视频的属性

  • poster:视频封面,没有播放时显示的图片

  • preload:预加载

  • autoplay:自动播放

  • loop:循环播放

  • controls:浏览器自带的控制条

  • width:视频宽度

  • height:视频高度

html 代码

  <video id="media" src="http://www.sundxs.com/test.mp4" controls width="400px" heigt="400px"></video>  
  //audio和video都可以通过JS获取对象,JS通过id获取video和audio的对象

获取video对象

  Media = document.getElementById("media"); 

Media方法和属性:

HTMLVideoElement和HTMLAudioElement 均继承自HTMLMediaElement

  • Media.error; //null:正常

  • Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效

//网络状态 
- Media.currentSrc; //返回当前资源的URL
- Media.src = value; //返回或设置当前资源的URL
- Media.canPlayType(type); //是否能播放某种格式的资源
- Media.networkState; //0.此元素未初始化 1.正常但没有使用网络 2.正在下载数据 3.没有找到资源
- Media.load(); //重新加载src指定的资源
- Media.buffered; //返回已缓冲区域,TimeRanges
- Media.preload; //none:不预载 metadata:预载资源信息 auto:

//准备状态 
- Media.readyState;//1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
- Media.seeking; //是否正在seeking

//回放状态

  • Media.currentTime = value; //当前播放的位置,赋值可改变位置

  • Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0

  • Media.duration; //当前资源长度 流返回无限

  • Media.paused; //是否暂停

  • Media.defaultPlaybackRate = value;//默认的回放速度,可以设置

  • Media.playbackRate = value;//当前播放速度,设置后马上改变

  • Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文

  • Media.seekable; //返回可以seek的区域 TimeRanges

  • Media.ended; //是否结束

  • Media.autoPlay; //是否自动播放

  • Media.loop; //是否循环播放

  • Media.play(); //播放

  • Media.pause(); //暂停

//视频控制

  • Media.controls;//是否有默认控制条

  • Media.volume = value; //音量

  • Media.muted = value; //静音
    TimeRanges(区域)对象

  • TimeRanges.length; //区域段数

  • TimeRanges.start(index) //第index段区域的开始位置

  • TimeRanges.end(index) //第index段区域的结束位置

//相关事件

  var eventTester = function(e){
     Media.addEventListener(e,function(){
         console.log((new Date()).getTime(),e) //仅仅这一行代码好像有问题
     },false);
 }
  • eventTester("loadstart"); //客户端开始请求数据

  • eventTester("progress"); //客户端正在请求数据

  • eventTester("suspend"); //延迟下载

  • eventTester("abort"); //客户端主动终止下载(不是因为错误引起)

  • eventTester("loadstart"); //客户端开始请求数据

  • eventTester("progress"); //客户端正在请求数据

  • eventTester("suspend"); //延迟下载

  • eventTester("abort"); //客户端主动终止下载(不是因为错误引起),

  • eventTester("error"); //请求数据时遇到错误

  • eventTester("stalled"); //网速失速

  • eventTester("play"); //play()和autoplay开始播放时触发

        //在 chrome中是 play()和autoplay开始播放时触发
       //在 firefox中是 play()

 
  • eventTester("pause"); //pause()触发

  • eventTester("loadedmetadata"); //成功获取资源长度

  • eventTester("loadeddata"); //

  • eventTester("waiting"); //等待数据,并非错误

  • eventTester("playing"); //开始回放

  • eventTester("canplay"); //可以播放,但中途可能因为加载而暂停

  • eventTester("canplaythrough"); //可以播放,歌曲全部加载完毕

  • eventTester("seeking"); //寻找中

  • eventTester("seeked"); //寻找完毕

  • eventTester("timeupdate"); //播放时间改变

  • eventTester("ended"); //播放结束

  • eventTester("ratechange"); //播放速率改变

  • eventTester("durationchange"); //资源长度改变

  • eventTester("volumechange"); //音量改变


Github 视频播放器项目:videoplayer

extend read:
video object
使用 HTML5 视频事件

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

来自 http://www.jianshu.com/p/404d01b8e713

js统制html5 【video】标签中视频的播放和停止  停止播放 结束播放


需求:页面中有2个普通按钮a,b。还有一个video标签,能成功播放出视频。。我想要的效果是,点击a按钮,视频开始播放,点击b按钮,视频播放停止!!!<br><br>----------------------------------------------------code---------------------------------------------------------------------------<br><br><!DOCTYPE html>
 
<html>
 
  <head>
 
    <title>Simple JavaScript Controller</title>
 
    <script type="text/javascript">
 
       function playPause() {
 
       var myVideo = document.getElementsByTagName('video')[0];   //获取视频video
 
       if (myVideo.paused){
 
           myVideo.play();
 
       }else{
 
           myVideo.pause();
 
       }
 
       function makeBig() {     //全屏  高度2倍
 
       var myVideo = document.getElementsByTagName('video')[0];
 
       myVideo.height = (myVideo.videoHeight * 2 ) ;
 
       }
  
       function makeNormal() {   //取消全屏
 
       var myVideo = document.getElementsByTagName('video')[0];
 
       myVideo.height = (myVideo.videoHeight) ;
 
       }
 
    </script>
 
  </head>
  
  <body>
 
     <div class="video-player" align="center">
 
        <video src="myMovie.m4v" poster="poster.jpg" ></video>     <!--视频 -->
 
      <br>
 
      <a href="javascript:playPause();">Play/Pause</a> <br>    <!--播放  暂停-->
 
      <a href="javascript:makeBig();">2x Size</a>     <!--放大视频--><br>
[解决办法]
 
      <a href="javascript:makeNormal();">1x Size</a> <br>     <!--还原视频 -->
 
     </div>
 
  </body>
 
</html>

 [解决办法]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var myVideo = document.getElementsByTagName('video')[0];
可以换成
document.getElementById('videoId');
 
<video src="myMovie.m4v" poster="poster.jpg" id="videoId"></video>
[解决办法]
额。来晚了。。。
停止的话...
 
myVideo.currentTime = 0;    //属性设置或返回音频/视频播放的当前位置(以秒计)。当设置该属性时,播放会跳跃到指定的位置。
myVideo.pause();
------解决方案--------------------
  
mark

 原文地址:http://www.reader8.cn/jiaocheng/20130619/1350009.html

       http://www.reader8.cn/jiaocheng/javascript/

给心灵一个纯净空间,让思想,情感,飞扬!

来自 http://www.cnblogs.com/shimily/articles/3852985.html



下面是自己亲自做的 有大用
$(document).ready(function () {
    $('.oneshiping-index .tubofang-index').click(function () {

        var bofang = $(this);

        bofang.css('display', 'none');
        //bofang.siblings('.oneshiping-index-title').css('display','none');
        bofang.siblings('video').css('display', 'block');
        var media = $(this).siblings('video');
        $(media)[0].play();
        $(media)[0].onended = function () {
            bofang.siblings('video').css('display', 'none');

            //bofang.siblings('.oneshiping-index-title').css('display','block');
            bofang.css('display', 'block');

        };
        $(media)[0].onpause = function () {
            bofang.siblings('video').css('display', 'none');

            //bofang.siblings('.oneshiping-index-title').css('display','block');
            bofang.css('display', 'block');

        };
        $(media)[0].onplay = function () {
            $(media).parents('.row_shiping_index').find('video').each(function (index) {
                if ($(this).attr('poster') != $(media).attr('poster')) {
                    $(this)[0].currentTime = 0;
                    $(this)[0].pause();
                    $(this).css('display', 'none');
                    $(this).siblings('.tubofang-index').css('display', 'block');
                }
            });
        };
        $(media)[0].onplaying = function () {
            $(media).parents('.row_shiping_index').find('video').each(function (index) {
                if ($(this).attr('poster') != $(media).attr('poster')) {
                    $(this)[0].currentTime = 0;
                    $(this)[0].pause();
                    $(this).css('display', 'none');
                    $(this).siblings('.tubofang-index').css('display', 'block');
                }
            });
        };


    });

});

 


普通分类: