IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Dplayer中Hls支持小解 -> 正文阅读

[JavaScript知识库]Dplayer中Hls支持小解

摘要

Dplayer播放器框架从浏览器自身的videoDOM组件继承扩展而来,因此其本身只支持如下三种媒体类型。其他的如m3u8和flv等类型并不支持,需要通过扩展进行。

File FormatMedia Type
MP4video/mp4
WebMvideo/webm
Oggvideo/ogg

而Dplayer文档本身叙述并不十分清晰,因此,本文仅对这类支持做出一些个人见解的描述,如有谬误,欢迎交流改正。

HLS支持的两种写法

写法一:通过script标签提前引入,并在pluginOptions中进行配置

<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 见(https://hls-js.netlify.app/api-docs/variable/index.html#static-variable-hlsDefaultConfig)
        // hls参考默认配置
        },
    },
});
console.log(dp.plugins.hls); // Hls 实例

重要:

首先该方法需要利用script标签事先引入hls.js,并确保其位置位于DPlayer.js之前,其主要作用是提前配置window.Hls对象。因为dplayer在检测到video类型为hls之后,会判断当前window对象中是否存在Hls属性,如果没有事先加载,自然无法进行hls文件的读取。(chrome和edge好像都是默认不支持,只有safari默认支持)

case 'hls':
    if (window.Hls) {
        if (window.Hls.isSupported()) {
             const options = this.options.pluginOptions.hls;
             const hls = new window.Hls(options);
             this.plugins.hls = hls;
             hls.loadSource(video.src);
             hls.attachMedia(video);
             this.events.on('destroy', () => {
                  hls.destroy();
                   delete this.plugins.hls;
             });
         } else {
             this.notice('Error: Hls is not supported.');
         }
    } else {
         this.notice("Error: Can't find Hls.");
    }
    break;

注意点:

需要在dplayer之前加载hls.js

需要将视频配置中将视频类型写作hls

写法二:通过video配置中的customType进行自定义

const dp = new DPlayer({
    container: document.getElementById('dplayer'),
    video: {
        url: 'demo.m3u8',
        type: 'customHls',
        customType: {
            customHls: function (video, player) {
                const hls = new Hls();
                hls.loadSource(video.src);
                hls.attachMedia(video);
            },
        },
    },
});

优点

无需通过script标签提前引入,可以通过import标签引入hls.js,在需要的时候进行hls的引用,主要是webpack和vite这类构建工具中可以使用。

注意点

必须在dplayer播放一开始初始化的时候就进行自定义类型的设置,否则在后续使用switchvideo函数播放m3u8视频时会不起作用

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:15:16  更:2021-11-23 12:17:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 5:17:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码