html5音頻和視頻

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>html5中的音頻和視頻</title>
    
</head>
<body>

   <!--html4中的音頻視頻播放方式
   代碼冗雜,加載失敗沒法播放,一片空白..須要flash支持
   -->
   <object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="500" height="400"
           codebase="swflash.cab#version=6,0,10,0">

       <param name="allowFullScreen" value="true" />

       <embed src="1117786.mp4"  autostart="0" type="application/x-shockwave-flash" width="500" height="400">
       </embed>
   </object>

   <!--html5音視頻播放
   autoplay:自動播放,
   controls;顯示控制條,
   loop:是否循環播放,
   preload:{預加載處理
     auto:自動所有加載音視頻
     none:不加載
     metadata:預加載元數據(媒體字節數,第一幀,播放列表,持續時間等)
   },
   poster:(video元素獨有)當預加載的視頻不存在時,顯示一張默認的圖片,
   error:正常狀況下爲null,出現錯誤返回一個MediaError對象,有四種狀態:

           MEDIA_ERR_ABORTED (數字爲1):媒體下載過程當中因爲用戶操做緣由終止;
           MEDIA_ERR_NETWORK (數字爲2):網絡錯誤媒體下載終止
            MEDIA_ERR_DECODE (數字爲3):媒體解碼錯誤
             MEDIA_ERR_SRC_NOT_SUPPORTED (數字爲4):媒體格式不支持,
   net

   -->
   <!--http://v.youku.com/v_show/id_XMjE4MDU1MDE2.html-->
   <video   id="video" src="1117786.mp4"  preload="a"  loop="loop" autoplay="autoplay" controls="controls" width="500px" height="450px">

       您的瀏覽器不支持video!
       <!--source :爲媒體文件指定多個播放格式和編碼方式-->
   <source src="1117786.mp4" type="video/ogg">

       <script type="text/javascript">
           var video = document.getElementById("video");
           //監聽錯誤信息
           video.addEventListener("error",function(){

               var error = video.error;
               var code = error.code;
               switch (code){
                   case 1 :
                       console.info("視頻加載被終止");
                       break;
                   case 2 :
                       console.info("網絡緣由,視頻加載被終止");
                       break;
                   case 3 :
                       console.info("解碼失敗");
                       break;
                   case 4 :
                       console.info("視頻格式不支持");
                       break;

               }
           },false);
             /*
             * networkState:網絡狀態屬性,
             * 在加載過程當中讀取當前網絡的狀態,
             * NETWORK_EMPTY(數字爲 0):網絡連接初始狀態,
             * NETWORK_IDLE(數字爲1):已經選擇好媒體播放格式,未創建網絡連接,
             * NETWORK_LOADING(數字爲2):媒體加載中...,
             * NETWORK_NO_SOURCE(數字爲3):沒有支持的編碼格式
             *
             * */

             //獲取networkState屬性
           /**
            * 此處針對網絡媒體而言,播放本地視頻 net===3
            * @type {Number}
            */
            var net = video.networkState;
           if(net==0){
               console.info('網絡連接初始狀態..');
           }else if (net==1){
               console.info('已經選擇好媒體播放格式,未創建網絡連接');
           }else if (net==2){
               console.info('媒體加載中...');
           }else if(net==3){
               console.info('沒有支持的編碼格式');
           }
              //currentSrc:爲只讀屬性,獲取播放文件的src地址,本地文件爲空
          var src =  video.currentSrc;
           console.info("對應的src爲:"+src);
           //buffered:屬性
           /**
            * 返回一個對象,實現了TimeRanges接口,
            * 以確認瀏覽器是否緩存數據。
            * TimeRanges:表示一段時間範圍,大多數狀況下TimeRanges對象表示的時間範圍是一個從0開始的範圍。
            *
            * TimeRanges:有一個length屬性,表示有多少個時間範圍,大多數狀況下,存在時間範圍時該值爲1,不存在時爲0.
            * 有兩個方法,start(index) 和end(index),大多數狀況下index設置爲0便可;
            *
            *
            * @type {TimeRanges}
            */
           var buf = video.buffered;


           console.info(buf.length);

           /**
            * readyState屬性:返回當前媒體播放位置的就緒狀態,有五個可能值。
            * HAVE_NOTHING:(數字爲0)沒有獲取到媒體的任何信息,當前播放位置沒有可播放的數據.
            * HAVE_METADATA:(數字爲1)已經獲取到足夠的媒體數據,可是當前位置的媒體數據無效.
            * HAVE_CURRENT_DATA:(數字爲2):當前位置已經有數據能夠播放,可是沒有獲取到讓播放器前進的數據。(
            *                                   沒有獲取到下一幀的數據或者播放已經完成)
            *  HAVE_FUTURE_DATA:(數字3)表示當前位置已經獲取到數據,可獲取到讓播放器前進的數據。爲視頻文件時,表示當前幀和下一幀
            *  數據都獲取到了,噹噹前位置是最後一幀時表示,readyState不可能爲3狀態(HAVE_FUTURE_DATA)。
            *  HAVE_ENOUGH_DATA:(數字4)表示當前位置已經獲取到數據,可獲取到讓播放器前進的數據,
            *     瀏覽器以某一速度加載,保證足夠的數據進行播放。
            * @type {number|Number}
            */
           var state = video.readyState;
           console.info("readyState屬性爲:"+state);
           /**
            * seekable 和seeking屬性:表示瀏覽器是否正在請求特定播放位置的數據.
            *
            * seeking屬性返回boolean值,true表示正在請求,false表示中止請求。
            *
            * seekable屬性返回一個TimeRanges對象,表示請求到的時間範圍。
            *
            * 均爲只讀屬性。
            * @type {TimeRanges}
            */
           var seekable = video.seekable;
           var seeking = video.seeking;
           console.info("瀏覽器是否正在請求特定播放位置的數據:"+seeking);
           /**
            *
            * @type {Number}
            */
           var cur = video.currentTime;
           var startTime = video.startTime;//開始播放的時間,通常爲0
           var duration = video.duration;//媒體文件總的播放時間.
           console.info(cur+","+startTime+","+duration);
           //瀏覽器支持不一致: Firefox:0 ,undefined,NaN  Chrome: 0,0,NaN

          /**
           *played :讀取已經播放的時間段
           * @type {TimeRanges}
           * */

           var play = video.played;

           /**
            * 是否爲暫停狀態,
            * true表示暫停播放,
            * false表示正在播放
            * @type {boolean}
            */
           var paused = video.paused;
           /**
            * ended屬性:boolean值
            * true:表示播放完畢
            * false:表示正在播放
            * @type {boolean}
            */
           var ended= video.ended;

           /**
            * defaultPlaybackRate:
            * 修改或者讀取默認的播放速率
            * playbackRate:
            *  修改或者讀取當前的播放速率
            * @type {Number}
            */
           var rate = video.defaultPlaybackRate;

           var playRate =video.playbackRate;

           console.info("當前媒體的播放速率:"+rate);
           /**
            * volume屬性: 讀取或者修改默認音量,從0到1.0爲靜音,1爲最大音量.
            * @type {Number|CSSStyleDeclaration.volume|*}
            */
           var volume = video.volume;
             volume=0.4;
           /**
            * muted:返回boolean值。
            * true:表示靜音狀態
            * @type {boolean}
            */
           var muted = video.muted;

           console
                   .info("當前音量:"+volume+","+muted);// 1 ,false


       </script>
   </video>


    <input type="button" onclick="pause();" value="暫停">

   <input type="button" onclick="play();" value="播放">


   <script>
       var video = document.getElementById("video");
        function pause(){
            video.pause();
            console.warn("視頻已經暫停");
            //判斷是否爲暫停狀態
            console.info(video.paused);
        }

       function play(){

           video.play();
           console.warn("視頻開始播放...");
       }


   </script>

<audio  >

    <!--
    音頻和視頻的屬性和方法,以及事件處理基本一致。
    -->

</audio>


</body>
</html>

相關文章
相關標籤/搜索