1. 程式人生 > >html視訊播放器相容處理

html視訊播放器相容處理

本文轉載自http://blog.csdn.net/freshlover/article/details/7535785

由於html5的出現,讓網頁中的視訊、音訊有了更加便捷的實現方式。但是video、audio標籤只在IE 9+、Safari 3+、FireFox 4+、Opera 10+、Chrome 3+的瀏覽器版本得到了支援,並且各瀏覽器對於視訊編碼格式的支援不一致,這就需要我們考慮一個綜合的實現方案,使得視訊在不同瀏覽器中都能順利播放,而且在老版本的瀏覽器中也能得到支援。


以下是結合專案經驗,總結出的幾種方案,與大家分享。

方案1、使用VideoJS外掛實現相容 外掛下載http://videojs.com


使用新版VideoJS外掛需要注意的是其使用方法:

使用步驟一:head部分新增

  1. <linkhref="http://vjs.zencdn.net/c/video-js.css"rel="stylesheet">
  2. <scriptsrc="http://vjs.zencdn.net/c/video.js"></script>

說明:上述javascript程式碼進適用於支援html5元素的IE版本,對於老版本的IE可以通過HTML5shiv來使不支援HTML5的瀏覽器支援HTML新標籤。htnl5shiv主要解決HTML5提出的新的元素不被IE6/IE7/IE8識別,這些新元素不能作為父節點包裹子元素,且不能應用CSS樣式。讓CSS 樣式應用在未知元素只需執行 document.createElement(elementName) 即可實現。html5shiv的工作原理也就是基於此。html5shiv的使用很簡單,由於IE9是支援html5的,故只需要在head中新增如下程式碼即可:

  1. <!–[if lt IE 9]>
  2.     <scripttype="text/javascript"src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  3. <![endif]–>

使用步驟二:body顯示視訊部分新增

  1. <videoid="my_video_1"class="video-js vjs-default-skin" controls preload="auto"width="275"height="200"poster
    ="http://www.feiliu.com/zt/img/20120417/preview.jpg"data-setup="{}">
  2.     <sourcesrc="http://www.feiliu.com/zt/video/mv00.mp4"type='video/mp4'/>
  3.     <sourcesrc="http://www.feiliu.com/zt/video/test2.webm"type='video/webm'/>
  4. </video>

說明:這裡的webm格式是針對FF瀏覽器的播放格式。

目前VideoJS最新升級的版本v3.2.0,本人已測試的V3.0以上都不支援IE6/IE7/IE8/,因此我們這裡採用老版本v2.0.2實現。
例如文章《VideoJs Version 3 doesn't work on IE7 / IE8》 的相關說明請檢視幫助文件http://help.videojs.com/
使用方法是:

步驟一:在頁面head部分新增如下程式碼:

  1. <linkrel="stylesheet"href="css/video-js.css"type="text/css"/>
  2. <scripttype="text/javascript"src="js/video.js"></script>
  3. <scripttype="text/javascript">
  4. // Must come after the video.js library  
  5. // Add VideoJS to all video tags on the page when the DOM is ready  
  6. VideoJS.setupAllWhenReady();//可選。不寫此函式預設為顯示播放控制條,滑鼠移開隱藏  
  7. /* ============= OR ============ */  
  8. // Setup and store a reference to the player(s).  
  9. // Must happen after the DOM is loaded  
  10. // You can use any library's DOM Ready method instead of VideoJS.DOMReady  
  11. /*  
  12. VideoJS.DOMReady(function(){  
  13.   // Using the video's ID or element  
  14.   var myPlayer = VideoJS.setup("example_video_1");  
  15.   // OR using an array of video elements/IDs  
  16.   // Note: It returns an array of players  
  17.   var myManyPlayers = VideoJS.setup(["example_video_1", "example_video_2", video3Element]);  
  18.   // OR all videos on the page  
  19.   var myManyPlayers = VideoJS.setup("All");  
  20.   // After you have references to your players you can...(example)  
  21.   myPlayer.play(); // Starts playing the video for this player.  
  22. });  
  23. */  
  24. /* ========= SETTING OPTIONS ========= */  
  25. // Set options when setting up the videos. The defaults are shown here.  
  26. /*  
  27. VideoJS.setupAllWhenReady({  
  28.   controlsBelow: false, // Display control bar below video instead of in front of  
  29.   controlsHiding: true, // Hide controls when mouse is not over the video  
  30.   defaultVolume: 0.85, // Will be overridden by user's last volume if available  
  31.   flashVersion: 9, // Required flash version for fallback  
  32.   linksHiding: true // Hide download links when video is supported  
  33. });  
  34. */  
  35. // Or as the second option of VideoJS.setup  
  36. /*  
  37. VideoJS.DOMReady(function(){  
  38.   var myPlayer = VideoJS.setup("example_video_1", {  
  39.     // Same options  
  40.   });  
  41. });  
  42. */  
  43. </script>
步驟二:在body顯示視訊位置新增如下程式碼:
  1. <divclass="vd">
  2.     <!-- Begin VideoJS -->
  3.     <divclass="video-js-box">
  4.     <videoid="example_video_1"class="video-js"width="280"height="210" controls preload="none"poster="http://www.feiliu.com/zt/img/20120417/img01.jpg">
  5.         <sourcesrc="http://www.feiliu.com/zt/video/mv01.mp4"type='video/mp4;'/>
  6.         <sourcesrc="http://www.feiliu.com/zt/video/test2.webm"type='video/webm'/>
  7.         <objectid="flash_fallback_1"class="vjs-flash-fallback"width="280"height="210"type="application/x-shockwave-flash"data="http://www.feiliu.com/zt/flash/flowplayer-3.2.1.swf">
  8.         <paramname="movie"value="http://www.feiliu.com/zt/flash/flowplayer-3.2.1.swf"/>
  9.         <paramname="allowfullscreen"value="true"/>
  10.         <paramname="flashvars"value='config={"playlist":["http://www.feiliu.com/zt/img/20120417/img01.jpg", {"url": "http://www.feiliu.com/zt/video/mv01.flv","autoPlay":false,"autoBuffering":true}]}'/>
  11. 相關推薦

    html視訊播放相容處理

    本文轉載自http://blog.csdn.net/freshlover/article/details/7535785 由於html5的出現,讓網頁中的視訊、音訊有了更加便捷的實現方式。但是video、audio標籤只在IE 9+、Safari 3+、FireFox

    簡易html視訊播放

    檔案列表 [email protected]:/data/video# ls hch.mp4 test.mp4 xyx.mp4 index.html video.li

    iOS 超好用的本地視訊播放推薦!

    本地播放器作為日常生活中不可或缺的一款工具類APP,Windows、Android等平臺不乏一些功能與體驗兼優的產品,但 iOS 平臺的使用者就沒有那麼幸運了,優秀的產品鳳毛麟角,且多數收費。 這源於 iOS 平臺的特殊性,完美支援各種視訊格式並不容易,幾乎沒有大廠在這方面投入,QQ影音

    第二十四篇-用VideoView製作一個簡單的視訊播放

    這是一個播放本地視訊的播放器,videoUrl1是手機裡放置視訊的路徑 效果圖: MainActivity.java package com.example.aimee.videotest; import android.Manifest; import android.co

    基於NDK、C++、FFmpeg的android視訊播放開發實戰-夏曹俊-專題視訊課程

    基於NDK、C++、FFmpeg的android視訊播放器開發實戰—1796人已學習 課程介紹         課程包含了對流媒體(拉流)的播放,演示了播放rtmp的香港衛視,支援rtsp攝像頭和h

    Linux常用視訊播放

      1、SMplayer是一款跨平臺的視訊播放工具,可以支援大部分的視訊和音訊檔案。它支援音訊軌道切換、允許調節亮度、對比度、色調、飽和度、伽瑪值,按照倍速、4倍速等多種速度回放、還可以進行音訊和字幕延遲調整以同步音訊和字幕。 2、VLC是一款自由、開源的跨平臺多媒體播放器及

    QtPlayer——基於FFmpeg的Qt音視訊播放

    QtPlayer——基於FFmpeg的Qt音視訊播放器 本文主要講解一個基於Qt GUI的,使用FFmpeg音視訊庫解碼的音視訊播放器,同時也是記錄一點學習心得,本人也是多媒體初學者,也歡迎大家交流,程式執行圖如下: QtPlayer基於FFmpeg的Q

    優酷、騰訊視訊播放介面引數說明

    優酷: 優酷的視訊播放器介面連線為:http://open.youku.com/tools/ 裡面已經有教詳細的說明了。 在這裡也做一些說明吧:匯入js檔案: 1 <script type="text/javascript" src="http://player.youku.com/jsa

    基於OpenCV從零開始的視訊播放!聘美騰訊,優酷等軟體的神器!

    實現了在MFC中顯示圖片,再要顯示一個視訊就是輕而易舉的事了,本篇介紹使用Opencv製作一個簡易的播放器,實現開啟檔案、暫停、繼續播放、再次播放和總當前幀數顯示功能。 首先還是先看一下介面效果:   嗯,是不是很有MFC的感覺,簡潔大方、樸素典雅又實用~~,如果用一個字

    android,Exoplayer實現視訊播放

    bundle配置: implementation 'com.google.android.exoplayer:exoplayer-core:2.8.1'implementation 'com.google.android.exoplayer:exoplayer-dash:2.8.1'implementati

    qt實現視訊播放

    本篇部落格介紹如何利用qMediaPlayer和qvideowidget實現視訊檔案(avi,mp4....)的播放,並且提供進度顯示,還可以通過拖動進度條來變換播放位置。相關程式碼可以在我的資源裡下載"基於qt的視訊播放器" pro檔案: #------------------------

    自己動手實現html5視訊播放倍數播放功能

    自己動手實現html5視訊播放器倍數播放功能 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>阿酷TONY--Tangni&

    HTML5倍數功能視訊播放(加速2倍,1.5倍播放

    方式一:採用第三方雲視訊平臺 HTML5倍數功能視訊播放器(加速2倍,1.5倍播放) 倍數功能視訊播放器的應用: 培訓場景,教育教學場景下,可以倍速觀看視訊,比如1.5倍,2倍的速度觀看視訊,可以更快速的看完課程,節省時間。 <div id="player">&

    關於使用OpenCV-python開發簡易視訊播放

    正在研究開簡易如何開發簡易視訊播放器,找了一些一列,包括在pyglet上面的程式碼,但是好長,執行出錯。 看到一個很簡潔的程式碼,沒有報錯但是彈開之後不會自動播放視訊,也沒有生成應用程式。 http://blog.51cto.com/7335580/2145914 這是他的連結,很簡潔

    一段蛋疼的程式碼:超不清視訊播放

    今天分享的這段程式碼,看起來沒啥實際用處,而且有些反潮流,因為現如今大家看視訊都追求更高解析度的超清畫質,而我們這個,是一個“超不清”的視訊播放器: 在控制檯裡播放視訊,用字元來表示畫面 不過我覺得它至少可以有三個作用:1.用來練習視訊和影象處理的程式設計開發;2.在沒有圖形介面的伺服器上播

    視訊播放的丟幀邏輯

        最近在做播放器在電視盒子上的適配,發現一個嚴重的問題:低端機型解碼能力不足。表現是丟幀,音畫不同步。對此,有兩種解決方法。 一、解碼前丟幀     思路是記錄25幀(1s)解碼的總時間decodeTotalTime,減去25幀播放的總時間playTotalT

    android形狀屬性、鎖屏密碼、動態模糊、kotlin專案、抖音動畫、記賬app、視訊播放等原始碼

    Android精選原始碼 直觀瞭解Android的“形狀”屬性如何影響Drawable的外觀。 一個靈活的視訊播放器, 可替換播放器核心。 android鎖屏輸入密碼功能原始碼 背景動態模糊方案,元件實現類對bitmap模糊處理的各類算... 簡單天氣,帶

    安卓視訊播放——ijkPlayer(Bilibili開源)

    作為一個B站(Bilibili)使用者,特別喜歡B站的播放器 湊巧,發現了b站的github的地址。。嘿嘿。。B站github地址f 發現了ijkplayer播放器,支援android 和ios 我們用AndroidStudio新建project名字是bilibili_ijkplay

    【Unity 2d/3d視訊播放

    https://github.com/86K/2D3D_VideoPlayer Unity2017.3.1f1 3d部分是htc硬體對接的。 視訊播放、暫停;聲音、速度調節;選集等功能都已實現。 主要參照htc官方視訊播放器模式。 原先的

    ubuntu 安裝視訊播放 smplayer

    由於  Ubuntu自帶的播放器  不能夠快進  感覺有點不舒服 所以 安裝這個  可以加速播放器  smplayer   開啟終端  sudo apt-add-repository ppa:rvm/sm