vue-dplayer实现hls播放的步奏详解

这次给大家带来vue-dplayer实现hls播放的步奏详解,vue-dplayer实现hls播放的注意事项有哪些,下面就是实战案例,一起来看一下。

起因

之前写了一篇《 vue2.0+vue-video-player实现hls播放》,里边有提到在用vue-video-player之前,我尝试着使用vue-dplayer实现hls播放,但是当时时间紧迫,还没有完成,就换方案了。现在抽时间把它补齐吧。

开始

安装依赖

npm install vue-dplayer -S

登录后复制

编写组件HelloWorld.vue

 

import VueDPlayer from './VueDPlayerHls';export default { name: 'HelloWorld', data () { return { msg: 'Welcome to Your Vue.js App', video: { url: 'https://logos-channel.scaleengine.net/logos-channel/live/biblescreen-ad-free/chunklist_w630020335.m3u8', pic: 'http://static.smartisanos.cn/pr/img/video/video_03_cc87ce5bdb.jpg', type: 'hls' }, autoplay: false, player: null, contextmenu: [ { text: 'GitHub', link: 'https://github.com/MoePlayer/vue-dplayer' } ] } }, components: { 'd-player': VueDPlayer }, methods: { play() { console.log('play callback') } }, mounted() { this.player = this.$refs.player.dp; // console.log(this.player); var hls = new Hls(); hls.loadSource('https://logos-channel.scaleengine.net/logos-channel/live/biblescreen-ad-free/chunklist_w630020335.m3u8'); hls.attachMedia(this.player); }}

登录后复制

引入hls.js

本来是使用import引入,可是执行报错。所以就先在index.html内用script标签引入进来。

       vue-dplayer-hls    

登录后复制

注意:

根据DPlayer Demo页面代码,想支持hls,需要将video.type 设置为”hls”,但是我修改之后发现无法播放。于是去看了源码,发现源码内有这样一处:

vue2.0+vue-dplayer实现hls播放的示例

也就是说不论你在自己的组件内填写的是什么,其实都是使用的’normal’来new的Dplayer实例。

修改源码

自定义一个组件VueDPlayerHls.vue,然后copy源代码,问题处修改为: type: this.video.type

 

require('../../node_modules/dplayer/dist/DPlayer.min.css'); import DPlayer from 'DPlayer' export default { props: { autoplay: { type: Boolean, default: false }, theme: { type: String, default: '#FADFA3' }, loop: { type: Boolean, default: true }, lang: { type: String, default: 'zh' }, screenshot: { type: Boolean, default: false }, hotkey: { type: Boolean, default: true }, preload: { type: String, default: 'auto' }, contextmenu: { type: Array }, logo: { type: String }, video: { type: Object, required: true, validator(value) { return typeof value.url === 'string' } } }, data() { return { dp: null } }, mounted() { const player = this.dp = new DPlayer({ element: this.$el, autoplay: this.autoplay, theme: this.theme, loop: this.loop, lang: this.lang, screenshot: this.screenshot, hotkey: this.hotkey, preload: this.preload, contextmenu: this.contextmenu, logo: this.logo, video: { url: this.video.url, pic: this.video.pic, type: this.video.type } }) player.on('play', () => { this.$emit('play') }) player.on('pause', () => { this.$emit('pause') }) player.on('canplay', () => { this.$emit('canplay') }) player.on('playing', () => { this.$emit('playing') }) player.on('ended', () => { this.$emit('ended') }) player.on('error', () => { this.$emit('error') }) } }

登录后复制

在原组件(HelloWorld.vue)内import新组件

import VueDPlayer from './VueDPlayerHls';

登录后复制

实现播放

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

ajax动态赋值数据图

react组件的性能优化有哪些方面

以上就是vue-dplayer实现hls播放的步奏详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2773405.html

(0)
上一篇 2025年3月8日 13:46:52
下一篇 2025年3月8日 13:47:05

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue全局提示框组件使用详解

    这次给大家带来vue全局提示框组件使用详解,使用vue全局提示框组件使的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇文章给大家介绍一个vue全局提示框组件,具体代码如下所示: {{message}} export default …

    编程技术 2025年3月8日
    200
  • vue better-scroll的滚动插件使用详解

    这次给大家带来vue better-scroll的滚动插件使用详解,使用vue better-scroll的滚动插件的注意事项有哪些,下面就是实战案例,一起来看一下。 BetterScroll号称目前最好用的移动端滚动插件,因此它的强大之处…

    编程技术 2025年3月8日
    200
  • VUE+UEditor图片跨域上传怎样实现

    这次给大家带来VUE+UEditor图片跨域上传怎样实现,实现VUE+UEditor图片跨域上传的注意事项有哪些,下面就是实战案例,一起来看一下。 UEditor官网说不提供单图片的跨域,所以只能自己解决。查了网上的很多方案,但是没看到和v…

    编程技术 2025年3月8日
    200
  • JS的数组使用详解

    这次给大家带来JS的数组使用详解,JS数组使用的注意事项有哪些,下面就是实战案例,一起来看一下。 现在很多刚开始认识js的人都不是很清楚js数组是什么,js数组是怎么定义的,下面文章就给大家介绍下对于js数组的定义,对此感兴趣的下面一起来了…

    编程技术 2025年3月8日
    200
  • vue中slot与slot-scope使用步奏详解

    这次给大家带来vue中slot与slot-scope使用步奏详解,vue中slot与slot-scope使用的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了vue中slot与slot-scope的具体使用教程,有需要的朋友快来…

    编程技术 2025年3月8日
    200
  • 实现react服务器渲染的步奏详解

    这次给大家带来实现react服务器渲染的步奏详解,实现react服务器渲染的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇文章介绍了从零开始最小实现react服务器渲染的教程,希望能帮助到大家。 最近在写 koa 的时候想到,如果我…

    编程技术 2025年3月8日
    200
  • JS多物体运动的实现方法

    这次给大家带来JS多物体运动的实现方法,JS多物体运动实现的注意事项有哪些,下面就是实战案例,一起来看一下。 基本步骤 1.通过getElementsByTagName获取到要做多物体运动的元素2.然后for循环遍历元素,添加事件3.定义s…

    编程技术 2025年3月8日
    200
  • Angular17里的自定义指令使用详解

    这次给大家带来Angular17里的自定义指令使用详解,使用Angular17里自定义的注意事项有哪些,下面就是实战案例,一起来看一下。 1 什么是HTML   HTML文档就是一个纯文本文件,该文件包含了HTML元素、CSS样式以及Jav…

    编程技术 2025年3月8日
    200
  • Swiper里自定义分页器使用步奏详解

    这次给大家带来Swiper里自定义分页器使用步奏详解,使用Swiper里自定义分页器的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML DEMO(官网例子) Slide 1 Slide 2 Slide 3 登录后复制 1.设置导航…

    编程技术 2025年3月8日
    200
  • 使用oxm映射xml的实现步奏

    这次给大家带来使用oxm映射xml的实现步奏,使用oxm映射xml的注意事项有哪些,下面就是实战案例,一起来看一下。 认识XML解析技术 XML相关概念 (1)DTD:XML语法规则,是XML文件的验证机制,可以通过比较XML文档和DTD文…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论