HTML5音乐、视频等新媒体播放标签video、audio、embed与object介绍以及使用方式

时间:2024-03-06 15:26:06

音频播放器

音频的播放用"audio"标签实现对音频的控制

1 <audio src="http://www.ytmp3.cn/down/44456.mp3" controls="controls" align="center">
2 </audio>
3 <h5>半城烟沙</h5>
4 <audio src="2.mp3" controls="controls">
5 </audio>
6 </audio>
7 <h5>樱花草</h5>
8 <audio src="yinyue/1.mp3" controls="controls" loop="loop">
9 </audio>

它有src,controls,loop,perload,autoplay等属性。

  • src是audio的必须的一个属性,写音乐的地址
  • controls 是audio的一个重要属性,它有暂停,进度条等功能,其中谷歌浏览器的controls支持下载,不支持音量的调度,而火狐浏览器支持音量调节不支持下载
  • loop属性是是否设置循环,有了loop属性,这个音频将循环播放
  • autoplay属性只媒体加载完成后自动播放
  • perload指的是预加载,none,metadata,auto分别是属性的三个选项,none不进行预加载,metadata只加载元字节,auto则全部加载

视频播放器

视频的播放用"video"标签对视频进行控制与audio相同的是,audio的属性video都有

 

1 <video width="500"higth="400" src="http://edge.ivideo.sina.com.cn/212550342.mp4?KID=sina,viask&Expires=1555776000&ssig=bkhlo665%2Bx"controls="controls"poster="images/1.jpg"></video>

 

错误信息的erro属性:
在视频或音频发生播放错误时,会发送一个Mediaerror对象,该对象对应的code属性返回对应的属性错误码,其可能值为:

MeDIA_ERR_ABORTED(数值1)下载过程中用户操作原因终止
MEDIA_ERR_NETWORE(数值2)媒体资源可用,下载过程中网络错误
MWDIA_ERR_DECODE(数值3 媒体资源可用,但是解码时错误
MWDIA_ERR_SRC_NOT_SUPPORTED(数值4)媒体资源不可用,或者不支持格式
读取错误状态的代码如下:

 1 <srcipt>
 2     var video=document.getElemenetById("video Element");
 3     video.addEventListener("error",function ()
 4         {
 5           var error=video.eror;
 6           switch(error.code)
 7           {
 8               case 1:
 9                   alert("视频的下载被操作终止");
10                   break;
11               case 2:
12                   alert("网络故障,视频下载终止");
13                   break;
14               case 3:
15               {
16                   alert("解码错误");
17                   break;
18               }
19               case 4:
20               {
21                   alert("不支持此类格式,视频出错");
22                   break;
23               }
24               default:
25               {
26                   alert("发生未知错误");
27               }
28           }
29         },false);
30     </script>

network State属性
用于检测加载过程中的网络状态,不常用,并不详细介绍

它有四个返回值:

  • 0表示初始状态
  • 1表示未建立网络连接
  • 2表示媒体数据加载中
  • 3表示没有合适的编码,不加载

embed

 

embed和object都是网页用的嵌入脚本,用来播放flash文件的

如果使用的是flash文件或者其他video标签不支持的格式。那么可以使用embed标签插入。

embed标签只支持PC端,移动端无效,video标签移动和PC端均支持,如果你的视频文件是mp4格式的,那么推荐使用video标签,兼容PC端和移动端。

我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标签。也就是OBJECT和EMBED标签

 embed标签是html5版本新增的标签,是使用来定义嵌入的内容(如插件、媒体等)

如果浏览器没安装没启用flash,那么浏览器会跳出一个提示框访问是否要自动安装flash player。

object和embed的区别:
是为了兼容不同浏览器,IE只支持对Object的解析;火狐,谷歌,Safari只支持对Embed的解析。注意:使用<object>+<embed>是为了更好的兼容性,如果场景允许,推荐使用<object>

语法

1 <embed src="/i/helloworld.swf" type="application/x-shockwave-flash" />

embed标签属性值:

 

标签属性设置 说明             
src 被嵌入内容的地址
type 嵌入内容的文件类型MIME类型
autostart 自动播放(boolean)
loop 循环播放(boolean)
hidden 控制面板是否显示(true,no)
starttime=mm:ss(分:秒) 开始播放的时间
volume 音量大小(0~100)
height、width 容器属性
units 该属性指定高和宽的单位为pixels或en
controls=console 一般正常面板(多属性值)
name 该属性给对象取名,以便其他对象利用
title= 说明文字
palette=color|color 表示嵌入的音频或视频文件的前景色和背景色,第一个值为前景色,第二个值为背景色,中间用 | 隔开。color可以是RGB色(RRGGBB)也可以是颜色名
align 规定控制面板和当前行中的对象的对齐方式

 


embed支持很多媒体类型比如图像、音频、视频、可以参考文件类型IANA MIME 类型)列表,说明:embed标签是一个空标签,没有元素内容。在html中可以不关闭标签,而在xhtml中必须使用“/”关闭标签,如:<embed />

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

常用的MIME类型:

 

 

文件后缀 Mime类型 说明
.flv flv/flv-flash  在线播放
.html或.htm  text/html  超文本标记语言文本
.rtf  application/rtf RTF文本
.gif  image/gif GIF图形
.jpeg或.jpg  image/jpeg JPEG图形
.au audio/basic  au声音文件
.mid或.midi audio/midi或audio/x-midi MIDI音乐文件
.ra或.ram或.rm  audio/x-pn-realaudio RealAudio音乐文件
.mpg或.mpeg或.mp3  video/mpeg MPEG文件
.avi  video/x-msvideo AVI文件
.gz application/x-gzip GZIP文件
.tar application/x-tar  TAR文件
.exe  application/octet-stream 下载文件类型
.rmvb  video/vnd.rn-realvideo  在线播放
.txt  text/plain 普通文本
.mrp  application/octet-stream  MRP文件(国内普遍的手机)
.ipa application/iphone-package-archive IPA文件(IPHONE)
.deb  application/x-debian-package-archive DED文件(IPHONE)
.apk application/vnd.android.package-archive  APK文件(安卓系统)
.cab application/vnd.cab-com-archive  CAB文件(Windows Mobile)
.xap application/x-silverlight-app  XAP文件(Windows Phone 7)
.sis application/vnd.symbian.install-archive SIS文件(symbian平台)
.jar  application/java-archive JAR文件(JAVA平台手机通用格式)
.jad text/vnd.sun.j2me.app-descriptor JAD文件(JAVA平台手机通用格式)
.sisx  application/vnd.symbian.epoc/x-sisx-app  SISX文件(symbian平台)

Object

object参数说明
param name标签是在这个播放插件中嵌入的一些功能和播放参数,比如(你可以抄下来): 
<param name="playcount" value="1"><!--控制重复次数: “x”为几重复播放几次; x=0,无限循环。--> 
<param name="autostart" value="0"><!--控制播放方式: x=1,打开网页自动播放; x=0,按播放键播放。--> 
<param name="clicktoplay" value="1"><!--控制播放开关: x=1,可鼠标点击控制播放或暂停状态; x=0,禁用此功能。--> 
<param name="displaysize" value="0"><!--控制播放画面: x=0,原始大小; x=1,一半大小; x=2,2倍大小。--> 
<param name="enablefullscreen controls" value="1"><!--控制切换全屏: x=1,允许切换为全屏; x=0,禁用此功能。--> 
<param name="showaudio controls" value="1"><!--控制音量: x=1,允许调节音量; x=0,禁止音量调节。--> 
<param name="enablecontext menu" value="1"><!--控制快捷菜单: x=1,允许使用右键菜单; x=0,禁用右键菜单。--> 
<param name="showdisplay" value="1"><!--控制版权信息: x=1,显示电影及作者信息;x=0,不显示相关信息--> 
<param NAME="AutoStart" VALUE="-1"><!--是否自动播放--> 
<param NAME="Balance" VALUE="0"><!--调整左右声道平衡,同上面旧播放器代码--> 
<param name="enabled" value="-1"><!--播放器是否可人为控制--> 
<param NAME="EnableContextMenu" VALUE="-1"><!--是否启用上下文菜单--> 
<param NAME="url" VALUE="http://1.wma"> <!--播放的文件地址--><param NAME="PlayCount" VALUE="1"><!--播放次数控制,为整数--> 
<param name="rate" value="1"><!--播放速率控制,1为正常,允许小数,1.0-2.0--> 
<param name="currentPosition" value="0"><!--控件设置:当前位置--> 
<param name="currentMarker" value="0"><!--控件设置:当前标记--> 
<param name="defaultFrame" value=""><!--显示默认框架--> 
<param name="invokeURLs" value="0"><!--脚本命令设置:是否调用URL--> 
<param name="baseURL" value=""><!--脚本命令设置:被调用的URL--> 
<param name="stretchToFit" value="0"><!--是否按比例伸展--> 
<param name="volume" value="50"><!--默认声音大小0%-100%,50则为50%--> 
<param name="mute" value="0"><!--是否静音-- 
<param name="uiMode" value="mini"><!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示--><param name="windowlessVideo" value="0"><!--如果是0可以允许全屏,否则只能在窗口中查看--> 
<param name="fullScreen" value="0"><!--开始播放是否自动全屏--> 
<param name="enableErrorDialogs" value="-1"><!--是否启用错误提示报告--> 
<param name="SAMIStyle" value><!--SAMI样式--> 
<param name="SAMIFilename" value><!--字幕ID--> 

使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。
现阶段用 JS 嵌入 Flash 是最完美的方法.

对于不支持object的浏览器,可以使用如下方式,浏览器将跳过object,识别embed元素:

<object width="400" height="40" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
 <param name="SRC" value="bookmark.swf">
 <embed src="bookmark.swf" width="400" height="40"></embed>
</object>

播放音频可使用object、embed,此外html5也有audio标签与video相对应,且用法相同。