音頻播放器
音頻的播放用"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相對應,且用法相同。