這次帶給大家自訂實作可以播放暫停、進度拖曳、音量控制及全螢幕的H5播放器,自訂實作可以播放暫停、進度拖曳、音量控制及全螢幕的H5播放器的注意事項有哪些,下面就是實戰案例,一起來看一下。
本次的分享是一個基於HTML5標籤實作的自訂影片播放器。其中實現了播放暫停、進度拖曳、音量控制及全螢幕等功能。
效果預覽
點我查看 原始碼倉庫 。
核心思路
我相信一定會有些沒有接觸過製作自訂播放器的童鞋對於 標籤的認識會停留在此。
<video> <source></source> </video>
其中controls屬性經過設定,會在介面中顯示一個瀏覽器自帶的控制條。如果對於UI沒有要求的需求,其內建控制器已經可以滿足大部分的需求。當然瞭如果是這樣你們也不會看到這篇分享了=。 =
隱藏控制條並模擬
那麼實現一個自訂功能的播放器關鍵就在於,我們不使用原生的控制器,將其隱藏掉之後,在下方同樣的位置透過html、css來模擬所需樣式,同時透過js來呼叫vedio標籤所暴露給我們的介面函數及屬性,以及偵測使用者的操作行為來同步的模擬UI與影片播放資料的相應變化。
幾個核心函數及屬性的用法
myVid=document.getElementById("video1"); //控制视频开关 myVid.play() //播放 myVid.pause() //暂停 //模拟视频进度条 myVid.currentTime=5; //返回或设定当前视频播放位置 myVid.duration // 返回视频总长度 //模拟视频音量 myVid.volume //音量 //获取视频当前状态后判断何时从loading切换为播放 myVid.readyState //0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息 //1 = HAVE_METADATA - 关于音频/视频就绪的元数据 //2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒 //3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的 //4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放
在所有實作中的關鍵點,較為繁瑣的是對於進度條的模擬。其中使用了video標籤中的currentTime以及duration屬性,透過目前播放時間與總播放時間的比值,就可以計算出進度條相對於總長度的位置。同時使用者拖曳進度條所最後設定的長度也可以用來反向推算出此時影片應該播放的位置。
拖曳程式碼思路
//核心代码示例 var dragDis = 0 var processWidth = xxx //拖拽条总长 $('body').mousedown(function(e) { startX = e.clientX dragDis = startX - leftInit //leftInit为拖拽条起始点巨屏幕左侧的距离 dragTarget.css({ //拖拽按钮 left: dragDis }) dragProcess.css({ //进度条(蓝色进度条) width: dragDis }) // 令进度条和拖拽按钮渲染在同一位置 videoSource.pause() }).mousemove(function(e) { moveX = e.clientX disX = moveX - startX var left = dragDis + disX if(left > processWidth) { left = processWidth } else if(left <p style="text-align: left;">同理音量的控制與其上行為基本一致,故在原始碼中作者將音量與進度部分透過不同元素進行判斷是進行進度還是音量的拖曳控制。 </p><p style="text-align: left;"><strong>透過查詢視訊串流狀態控製播放前的載入動畫</strong></p><pre class="brush:php;toolbar:false">function ifState() { var state = videoSource.readyState if(state === 4) { //状态为4即可播放 videoPlayer() } else { $('.play-sym-wrapper').remove() $('body').append('<p><img class="play-sym lazy" src="/static/imghwm/default1.png" data-src="./images/loading.gif" alt="自訂實作可以播放暫停、進度拖曳、音量控制及全螢幕的H5播放器" ></p>') //添加loading动画 setTimeout(ifState, 10) } } setTimeout(ifState, 10)
核心的控制部分已經說完了,有興趣的同學可以去原始碼的html點擊播放,其中被迫有很多零碎的需求,例如點擊暫停,保存音量等等。整個視訊播放器的基礎功能實現的還算完善。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是自訂實作可以播放暫停、進度拖曳、音量控制及全螢幕的H5播放器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

"h5"和"HTML5"在大多數情況下是相同的,但它們在某些特定場景下可能有不同的含義。 1."HTML5"是W3C定義的標準,包含新標籤和API。 2."h5"通常是HTML5的簡稱,但在移動開發中可能指基於HTML5的框架。理解這些區別有助於在項目中準確使用這些術語。

H5,即HTML5,是HTML的第五個版本,它為開發者提供了更強大的工具集,使得創建複雜的網頁應用變得更加簡單。 H5的核心功能包括:1)元素允許在網頁上繪製圖形和動畫;2)語義化標籤如、等,使網頁結構清晰,利於SEO優化;3)新API如GeolocationAPI,支持基於位置的服務;4)跨瀏覽器兼容性需要通過兼容性測試和Polyfill庫來確保。

如何創建 H5 鏈接?確定鏈接目標:獲取 H5 頁面或應用程序的 URL。創建 HTML 錨點:使用 <a> 標記創建錨點並指定鏈接目標URL。設置鏈接屬性(可選):根據需要設置 target、title 和 onclick 屬性。添加到網頁:將 HTML 錨點代碼添加到希望鏈接出現的網頁中。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器