基于DPlayer的原生flv和hls播放

本文聚焦在纯HTML环境下使用DPlayer库播放HLS和FLV协议视频。介绍了hls.js、flv.js和DPlayer库地址,说明了通过npm安装并拷贝js文件的方法,给出播放视频的HTML示例及设置要点,还提及针对HLS协议的自定义播放方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Part1前言

著名的hls.js和flv.js可以分别支持hls协议和flv协议的播放。两个库地址如下 https://github.com/bilibili/flv.js
dea8bc338b56e5b252de2699b7632842.png

https://github.com/video-dev/hls.js

4a5096b0f358583f09a815948141f3e7.png

但是我现在需要一个库同时支持hls和flv协议播放,这里推荐一个库DPlayer https://github.com/DIYgod/DPlayer

026e9cec528125297a237ab5f7762617.png

本文主要研究如何在纯html环境下,实现对其的使用。

Part2下载js文件

官网提供了npm的安装方法,没有提供js文件的下载。我们采用npm进行安装,之后拷贝出js文件。

npm install dplayer --save

然后再node_modules\dplayer\dist下拷贝出DPlayer.min.js。

d9eaa8a77559314406acf1a2ab749a6f.png

由于其使用依赖于hls.js和flv.js。所以以同样的方法下载到其js文件。

819b29f7ea65ce87f5ccb84520511c28.png 0ec645bce69df4899a3b666aae1c2d6c.png

最后组装进同一个工程

8ef9e10df96aa1c7f388d21d9784a95d.png

Part3播放视频

播放视频的html示例如下

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <div id="dplayer" style="height: 400px; width: 800px"></div>
  </body>
</html>
<script src="flv.min.js"></script>
<script src="hls.min.js"></script>
<script src="DPlayer.min.js"></script>
<script>
  const dp = new DPlayer({
    container: document.getElementById('dplayer'),
    autoplay: true,
    volume: 0,
    video: {
      url: 'http://192.168.1.52:9002/live/3508.live.flv',
      type: 'flv',
    },
    // video: {
    //   url: 'http://192.168.1.52:9002/live/3508/hls.m3u8',
    //   type: 'customHls',
    //   customType: {
    //     customHls: function (video, player) {
    //       const hls = new Hls()
    //       hls.loadSource(video.src)
    //       hls.attachMedia(video)
    //       hls.on(Hls.Events.MANIFEST_PARSED, function () {
    //         video.play()
    //       })
    //     },
    //   },
    // },
  })
</script>

几点说明:1、由于我们需要设置自动播放,所以需要将音量设置为0才可以以及自动播放设置为true

autoplay: true,
    volume: 0,

另外,这种方法对flv协议可以有用,但是对hls协议不行,我们针对hls协议采用自定义方法进行播放,示例如下

customType: {
    customHls: function (video, player) {
    const hls = new Hls()
    hls.loadSource(video.src)
    hls.attachMedia(video)
    hls.on(Hls.Events.MANIFEST_PARSED, function () {
    video.play()
    })
    },
    },

Part4总结

本文主要介绍了基于Dplayer的原生html播放hls和flv协议的方法。示例demo下载地址:https://download.csdn.net/download/g0415shenw/86847487

<html><head> <title>Dplayer记忆播放功能</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=11"> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" id="viewport" name="viewport"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.css"> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/hls.js/dist/hls.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/flv.js/dist/flv.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery.min.js/jquery.min.js"></script> <style type="text/css">html,body{height:100%;margin:0;padding:0;overflow:hidden;text-align:center;background:#181818}#player{height:100%;z-index: 9999999999;}.dplayer-logo{max-width: 150px;right: 2px;top: 2px;}@media (max-width: 768px){.dplayer-logo{max-width: 120px;right: 2px;top: 2px;}} .tbox{display: block;padding: 10px;height:50%;overflow: auto;} .tbox p{font-family: 'Microsoft YaHei', '微软雅黑', 'Arial', sans-serif;color:#FFF;font-size:14px;padding: 0 5px 15px 5px;text-align:left} </style> </head> <body> <div id="player"></div> <script type="text/javascript"> //视频URL var vid = "<?PHP echo $_GET['url'];?>"; var dp = new DPlayer({ container: document.getElementById('player'), autoplay: true,//自动播放 live: false,//直播模式 loop: false,//循环播放 screenshot: true,//开启截图 theme: '#FF9900',//主题配色 preload: 'auto',//视频预加载 hotkey: true,//热键控制 airplay: false,//在 Safari 中开启 AirPlay volume: 0.7,//默认音量 logo: 'js/logo.png',//logo图片 lang: 'zh-cn',//语言 mutex: true,//播放器互斥 video: { url: vid,//视频地址 //type: 'auto',//视频类型 pic: 'js/video.jpg',//视频封面 thumbnails: '',//缩列图 }, }); </script></body></html> 给这段代码添加一个画中画按钮
最新发布
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值