天給大家推薦一個超強大的html5含彈幕視頻播放器插件DPlayer。
dplayer 一款開源的高質量H5視頻播放器,Star高達9.5K+。作者是一名大四95后小鮮肉。支持發布彈幕、Bilibili視頻及實時視頻(HLS M3U8 FLV)等格式。
安裝
$ npm install dplayer --save
也可以使用cdn引入,dplayer目前最新版本1.26.0
https://www.bootcdn.cn/dplayer/
我們先嘗試初始化一個最簡單的 DPlayer
加載播放器文件:
<div id="dplayer"></div>
<script src="DPlayer.min.js"></script>
使用模塊管理器
import DPlayer from 'dplayer';
const dp = new DPlayer(options);
使用js初始化
const dp = new DPlayer({
container: document.getElementById('dplayer'),
video: {
url: 'demo.mp4',
},
});
DPlayer 有豐富的參數可以自定義你的播放器實例,詳細配置如下:
const dp = new DPlayer({
container: document.getElementById('dplayer'),
autoplay: false,
theme: '#FADFA3',
loop: true,
lang: 'zh-cn',
screenshot: true,
hotkey: true,
preload: 'auto',
logo: 'logo.png',
volume: 0.7,
mutex: true,
video: {
url: 'dplayer.mp4',
pic: 'dplayer.png',
thumbnails: 'thumbnails.jpg',
type: 'auto',
},
subtitle: {
url: 'dplayer.vtt',
type: 'webvtt',
fontSize: '25px',
bottom: '10%',
color: '#b7daff',
},
danmaku: {
id: '9E2E3368B56CDBB4',
api: 'https://api.prprpr.me/dplayer/',
token: 'tokendemo',
maximum: 1000,
addition: ['https://api.prprpr.me/dplayer/v3/bilibili?aid=4157142'],
user: 'DIYgod',
bottom: '15%',
unlimited: true,
},
contextmenu: [
{
text: 'custom1',
link: 'https://github.com/DIYgod/DPlayer',
},
{
text: 'custom2',
click: (player) => {
console.log(player);
},
},
],
highlight: [
{
time: 20,
text: '這是第 20 秒',
},
{
time: 120,
text: '這是 2 分鐘',
},
],
});
清晰度切換
在 video.quality 里設置不同清晰度的視頻鏈接和類型,video.defaultQuality 設置默認清晰度
const dp = new DPlayer({
container: document.getElementById('dplayer'),
video: {
quality: [
{
name: 'HD',
url: 'demo.m3u8',
type: 'hls',
},
{
name: 'SD',
url: 'demo.mp4',
type: 'normal',
},
],
defaultQuality: 0,
pic: 'demo.png',
thumbnails: 'thumbnails.jpg',
},
});
HLS支持
需要在 DPlayer.min.js 前面加載 hls.js
<div id="dplayer"></div>
<script src="hls.min.js"></script>
<script src="DPlayer.min.js"></script>
const dp = new DPlayer({
container: document.getElementById('dplayer'),
video: {
url: 'demo.m3u8',
type: 'hls',
},
pluginOptions: {
hls: {
// hls config
},
},
});
console.log(dp.plugins.hls); // Hls 實例
提供豐富的文檔支持及示例演示
附上項目文檔及地址
# 文檔地址
http://dplayer.js.org/zh/
# 倉庫地址
https://github.com/MoePlayer/DPlayer
另外,DPlayer系列播放器還包含Vue和React版本。
https://dplayer.netlify.app/
https://github.com/MoePlayer/react-dplayer
好了,就分享到這里。感興趣的同學可以去看下哈!如果小伙伴們有其它優秀的H5播放器,歡迎一起交流討論。
線演示鏈接:
https://www.html5tricks.com/demo/html5-classical-player/index2.html
插件下載鏈接:
https://www.html5tricks.com/download/html5-classical-player.rar
【【【【解壓需要密碼的關注我】】】】
你可以點擊底部“閱讀原文”前往我們的官方網站html5tricks,在那里你可以在線演示這款HTML5古典風格的音樂播放器,并且下載這個插件的源碼,你可以將它分享給你的朋友們,代碼僅供參考和學習。
TML5實現大文件上傳下載,JQUERY大文件上傳(切片),HTML實現文件夾的上傳和下載,前端如何用HTML5實現分片上傳GB級大文件,網頁中實現文件上傳下載的三種解決方案(推薦),HTML5實現文件批量上傳組件,JQUERY 實現文件夾上傳(保留目錄結構),B/S大文件上傳支持斷點上傳,WebService 大文件上傳,斷點續傳分片,HTML+AJAX實現上傳大文件問題,用HTML實現本地文件的上傳,HTML5實現大文件上傳,HTML5實現大文件分片上傳思路,利用HTML5分片上傳超大文件思路,
WEBUPLOADER 支持 超大上G,多附件上傳,JS 大文件分割/分片上傳,
百度WEBUPLOADER上傳視頻等大文件,WEBUPLOAD組件實現文件上傳功能和下載功能,JS大文件切片上傳,斷點續傳實現DEMO,前端上傳大文件的解決方案,前端上傳大文件處理(切片、斷點續傳),前端大文件上傳優化方案——分片上傳,vue大文件上傳解決方案,vue大文件上傳解決方案10G,vue大文件上傳解決方案50G,vue大文件上傳解決方案100G,html5如何實現大文件斷點續傳、秒傳,
java如何實現大文件斷點續傳、秒傳,SpringBoot如何實現大文件斷點續傳、秒傳,SpringMVC如何實現大文件斷點續傳、秒傳,SpringCloud如何實現大文件斷點續傳、秒傳,
webuploader如何實現大文件斷點續傳、秒傳,百度webuploader如何實現大文件斷點續傳、秒傳,html5實現大文件斷點續傳、秒傳,vue如何實現大文件斷點續傳、秒傳,前端如何實現大文件斷點續傳、秒傳,JavaScript如何實現大文件斷點續傳、秒傳,
html5大文件斷點續傳、秒傳解決方案,html5大文件斷點續傳、加密上傳解決方案,html5大文件斷點續傳、加密存儲解決方案,html5大文件斷點續傳分片解決方案,html5大文件斷點續傳分塊解決方案,html5大文件斷點續傳分割解決方案,html5大文件斷點續傳切割解決方案,
項目是一個新項目,開發部門在技術選型方面采用的是后端用的SpringBoot,前端用的VUE2,數據庫用的MySQL,主要是考慮兼容和遷移,客戶那邊確認過,明年開始將遷移到信創國產化平臺中,
后端我們公司項目組選的是JAVA,因為公司有自己的產品,所以直接使用就行了,針對客戶需求這塊是進行擴展。
客戶這邊實際上要傳的文件單個大小就有50G左右,所以需要支持斷點續傳和分片上傳,并且要支持多線程上傳,能夠充分利用帶寬資源。
之前在網上找過相關的資料,論壇里面也有網友交流過,還加過很多QQ群和微信群,但是結果都不太令人滿意。
技術選型的話用的是jquery,也是一個企業內網系統,用的是之前公司的框架,只是進行功能擴展
分片網上討論的很多,基本上全部都是用的HTML5的API,這個方案也不是不能用,但是在IE下面就不行了,兼容性差了點,并且也不能進行擴展,不能進行二次開發,限制性非常大,我們技術同事提的要求是需要提供產品完整源代碼,
網上的文章全部都沒有提供文件夾上傳和續傳的代碼,也沒有提供數據庫操作的代碼,
另外這塊我們是要求必須提供產品完整源代碼,因為后面我們需要自已來維護,同時是要求能夠自主可控的
研發部門的同事調研過百度的webuploader這個組件,發現他實際上就是對Flash和HTML5進行了一個封裝,本質還是調的HTML5的API,之前在項目中也用過,嘗試過,但是最終都不太滿意,一個是兼容性非常差,說的是兼容IE,但是在IE用的是Flash,在很多用戶的電腦上用不了,卡頓崩潰發生的太頻繁,文件上傳的數量一多比如幾千個,前端頁面就開始卡了,用戶體驗非常差。這些問題研發部的同事都向百度反應過,但是百度webuploader那邊一直沒人回,基本上沒人管,領導說要求付費提供技術支持,那邊也是沒人回,聯系不上他們任何人。
webuploader這邊連個開發人員都聯系不到,這個是怎么回事?
用戶上傳的文件比較大,有20G左右,直接用HTML傳的話容易失敗,服務器也容易出錯,需要分片,分塊,分割上傳。也就是將一個大的文件分成若干個小文件塊來上傳,另外就是需要實現秒傳功能和防重復功能,秒傳就是用戶如果上傳過這個文件,那么直接在數據庫中查找記錄就行了,不用再上傳一次,節省時間,實現的思路是對文件做MD5計算,將MD5值保存到數據庫,算法可以用MD5,或者CRC,或者SHA1,這個隨便哪個算法都行。
切片的話還有一點就是在服務器上合并,一個文件的所有分片數據上傳完后需要在服務器端進行合并操作。
視頻教程:https://www.ixigua.com/7226245960341389859
1.下載示例
https://gitee.com/xproer/up6-vue-cli
將up6組件復制到項目中
示例中已經包含此目錄
1.引入up6組件
2.配置接口地址
接口地址分別對應:文件初始化,文件數據上傳,文件進度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表
參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.處理事件
啟動測試
啟動成功
效果
數據庫
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
產品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
授權碼生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1
*請認真填寫需求信息,我們會在24小時內與您取得聯系。