[转帖]HTML5 Audio/Video 标签,属性,方法,事件汇总

<audio>标签属性:

  • src:音乐的URL
  • preload:预加载
  • autoplay:自动播放
  • loop:循环播放
  • controls:浏览器自带的控制条

Html代码  

1.   <audio id="media" src="http://www.abc.com/test.mp3" controls></audio>  

 

<video>标签属性:

  • src:视频的URL
  • poster:视频封面,没有播放时显示的图片
  • preload:预加载
  • autoplay:自动播放
  • loop:循环播放
  • controls:浏览器自带的控制条
  • width:视频宽度
  • height:视频高度

Html代码  

1.   <video id="media" src="http://www.abc.com/test.mp4" controls width="400px" heigt="400px"></video>  

 

获取HTMLVideoElement和HTMLAudioElement对象

 

Js代码  

1.   //audio可以直接通过new创建对象  

2.   Media = new Audio("http://www.abc.com/test.mp3");  

3.   //audiovideo都可以通过标签获取对象  

4.   Media = document.getElementById("media");  

 

 

Media方法和属性:

HTMLVideoElement HTMLAudioElement 均继承自HTMLMediaElement

 Js代码  

1.   //错误状态  

2.      Media.error; //null:正常  

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

4.     

5.   //网络状态  

6.      Media.currentSrc; //返回当前资源的URL  

7.      Media.src = value; //返回或设置当前资源的URL  

8.      Media.canPlayType(type); //是否能播放某种格式的资源  

9.      Media.networkState; //0.此元素未初始化  1.正常但没有使用网络  2.正在下载数据  3.没有找到资源  

10.     Media.load(); //重新加载src指定的资源  

11.     Media.buffered; //返回已缓冲区域,TimeRanges  

12.     Media.preload; //none:不预载 metadata:预载资源信息 auto:  

13.    

14.  //准备状态  

15.     Media.readyState;    //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA  

16.     Media.seeking; //是否正在seeking  

17.    

18.  //回放状态  

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

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

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

22.     Media.paused; //是否暂停  

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

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

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

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

27.     Media.ended; //是否结束  

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

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

30.     Media.play();    //播放  

31.     Media.pause();   //暂停  

32.    

33.  //控制  

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

35.     Media.volume = value; //音量  

36.     Media.muted = value; //静音  

37.    

38.     //TimeRanges(区域)对象  

39.     TimeRanges.length; //区域段数  

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

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

 事件:

Js代码  

1.          eventTester = function(e){  

2.       Media.addEventListener(e,function(){  

3.           console.log((new Date()).getTime(),e);  

4.       });  

5.   }  

6.     

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

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

9.   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");    //音量改变  

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。