广告
返回顶部
首页 > 资讯 > 精选 >vue怎么播放flv、m3u8视频流
  • 216
分享到

vue怎么播放flv、m3u8视频流

2023-07-06 04:07:04 216人浏览 独家记忆
摘要

本篇内容主要讲解“Vue怎么播放flv、m3u8视频流”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么播放flv、m3u8视频流”吧!一、 JessibucaPlayer插件用来播放fl

本篇内容主要讲解“Vue怎么播放flv、m3u8视频流”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么播放flv、m3u8视频流”吧!

一、 JessibucaPlayer插件用来播放flv流

首先是先把文件放在vue项目的public下面

vue怎么播放flv、m3u8视频流

在index.html文件里面引入 index.js文件(直接引入即可)

vue怎么播放flv、m3u8视频流

 3.把封装好的JessibucaPlayer组件放到公共components

<template>  <div class="jessibuca-player" >    <div class="container" :id="id" ref="container"></div>  </div></template> <script>export default {  name: "JessibucaPlayer",  props: {    videoUrl: {      type: String,      default: ""    },    id: {      type: Number,      required: true    }  },  data() {    return {      jessibuca: null // jessibuca 实例化对象    };  },  methods: {    init() {      this.jessibuca = new window.Jessibuca({        container: document.getElementById(this.id), // 播放器容器,若为 string ,则底层调用的是 document.getElementById('id')        videoBuffer: 0.2, // 设置最大缓冲时长,单位毫秒,播放器会自动消除延迟。        forceNoOffscreen: true, // 是否不使用离屏模式(提升渲染能力)        hasAudio: false, // 是否有音频        rotate: 0, // 设置旋转角度,只支持,0(默认) ,180,270 三个值        isResize: false, // 1.当为true的时候:视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边;2.当为false的时候:视频画面完全填充canvas区域,画面会被拉伸        isFullSize: true, // 当为true的时候:视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全        debug: false, // 是否开启控制台调试打印        timeout: 30, // 设置超时时长, 单位秒,在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件        supportDblclickFullscreen: true, // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。        showBandwidth: false, // 是否显示网速        operateBtns: {          // 配置功能          fullscreen: false, // 是否显示全屏按钮          screenshot: false, // 是否显示截图按钮          play: false, // 是否显示播放暂停按钮          audio: false // 是否显示声音按钮        },        keepScreenOn: false, // 开启屏幕常亮,在手机浏览器上, canvas标签渲染视频并不会像video标签那样保持屏幕常亮。        isNotMute: false, // 是否开启声音,默认是关闭声音播放的。        loadingText: "加载中...", // 加载过程中文案。        background: "" // 背景图片。      });      // 事件:      this.jessibuca_load()      // 1. 监听 jessibuca 初始化事件。      this.jessibuca.on("load", () => {        this.jessibuca_load()});      // 2. 信息,包含错误信息      this.jessibuca.on("log", data => this.jessibuca_log(data));      // 3. 触发暂停事件      this.jessibuca.on("pause", this.jessibuca_pause);      // 4. 触发播放事件      this.jessibuca.on("play", this.jessibuca_play);      // 5. 当前是否全屏      this.jessibuca.on("fullscreen", this.jessibuca_fullscreen);      // 6. 触发声音事件,返回boolean值      this.jessibuca.on("mute", this.jessibuca_mute);      // 7. 当解析出音频信息时回调      this.jessibuca.on("audioInfo", this.jessibuca_audioInfo);      // 8. 当解析出视频信息时回调      this.jessibuca.on("videoInfo", this.jessibuca_videoInfo);      // 9. 错误信息      this.jessibuca.on("error", this.jessibuca_error);      // 10. 当设定的超时时间内无数据返回,则回调      this.jessibuca.on("timeout", this.jessibuca_timeout);      // 11. 流状态统计,流开始播放后回调,每秒1次      this.jessibuca.on("start", this.jessibuca_start);      // 12. 渲染性能统计,流开始播放后回调,每秒1次      this.jessibuca.on("perfORMance", this.jessibuca_performance);      // 13. 当前网速, 单位KB 每秒1次,      this.jessibuca.on("kBps", this.jessibuca_kBps);    },    // 事件:    jessibuca_load() {      // 监听 jessibuca 初始化事件。      console.log("on load");      console.log("module", this.videoUrl);      this.methods_play(this.videoUrl);    },    jessibuca_log(data) {      // 信息,包含错误信息      console.log("on log", data);    },    jessibuca_pause(flag) {      // 触发暂停事件      console.log("on pause", flag);    },    jessibuca_play(flag) {      // 触发播放事件      console.log("on play", flag);    },    jessibuca_fullscreen(flag) {      // 当前是否全屏      console.log("on fullscreen", flag);      if (flag) {        let myEvent = new Event("resize");        setTimeout(() => {          window.dispatchEvent(myEvent);        }, 100);      }    },    jessibuca_mute(flag) {      // 触发声音事件      console.log("on mute", flag);    },    jessibuca_audioInfo(data) {      // 当解析出音频信息时回调,2个回调参数      // 1. numOfChannels:声频通道      // 2. sampleRate 采样率      console.log("audioInfo", data);    },    jessibuca_videoInfo(data) {      // 当解析出视频信息时回调      // 1. w:视频宽      // 2. h:视频高      console.log("videoInfo", data);    },    jessibuca_error(error) {      // 错误信息      console.log("error:", error);    },    jessibuca_timeout() {      // 当设定的超时时间内无数据返回,则回调      console.log("timeout");    },    jessibuca_start(s) {      // 流状态统计,流开始播放后回调,每秒1次      // 1. buf: 当前缓冲区时长,单位毫秒      // 2. fps: 当前视频帧率,      // 3. abps: 当前音频码率,单位bit,      // 4. vbps: 当前视频码率,单位bit,      // 5. ts:当前视频帧pts,单位毫秒      // console.log('stats is', s);    },    jessibuca_performance(performance) {      // 渲染性能统计,流开始播放后回调,每秒1次。      // 0: 表示卡顿、1: 表示流畅、2: 表示非常流程      // console.log('performance', performance);    },    jessibuca_kBps(kBps) {      // 当前网速, 单位KB 每秒1次,      // console.log('kBps', kBps);    },    // 方法:    methods_play(url) {      // 播放      if (this.jessibuca.hasLoaded()) {        this.jessibuca.play(url);      } else {        console.error("视频数据未加载完毕,请稍后操作");      }    },    methods_mute() {      // 静音      this.jessibuca.mute();    },    methods_cancelMute() {      // 取消静音      this.jessibuca.cancelMute();    },    methods_pause() {      // 暂停      this.jessibuca.pause();    },    methods_setVolume(volume) {      // 设置音量      this.jessibuca.setVolume(volume);    },    methods_setRotate(rotate) {      // 设置旋转角度 0\180\270      this.jessibuca.setRotate(rotate);    },    methods_destroy() {      // 关闭视频,释放底层资源      if (this.jessibuca) {        this.jessibuca.destroy();      }    },    methods_fullscreen(flag) {      // 全屏(取消全屏)播放视频      this.jessibuca.setFullscreen(flag);    },    methods_screenShot() {      // 截图      // 1. screenshot(filename, format, quality)      // 2. {string} filename、 {string} format、{number} quality      // 3.filename: 保存的文件名, 默认 时间戳、format : 截图的格式,可选png或jpeg或者WEBp ,默认 png、quality: 可选参数,当格式是jpeg或者webp时,压缩质量,取值0 ~ 1 ,默认 0.92      this.jessibuca.screenshot();    },    methods_setBufferTime(time) {      // 设置最大缓冲时长,单位秒,播放器会自动消除延迟。      // {number} time      this.jessibuca.setBufferTime(Number(time));    },    methods_setScaleMode(mode) {      // 设置播放器填充      // 1. 0 视频画面完全填充canvas区域,画面会被拉伸 等同于参数 isResize 为false      // 2. 1 视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边 等同于参数 isResize 为true      // 3. 2 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全 等同于参数 isFullSize 为true      this.jessibuca.setScaleMode(Number(mode));    },    restartPlay() {      // 重新加载      this.methods_destroy();      this.methods_play(this.videoUrl);    }  },  mounted() {    this.init();    window.onerror = msg => (this.err = msg);  },  beforeDestroy() {    if (this.jessibuca) this.jessibuca.destroy();  }};</script> <style>@import url("./JessibucaPlayer.CSS");</style>

 4.最后再自己用到的文件里面 引入组件即可

vue怎么播放flv、m3u8视频流

二、easyplayer插件播放m3u8流

教程

首先npm安装EasyPlayer、copy-webpack-plugin

ps:copy-webpack-plugin版本一定一定一定不能大于6.0,否则会报错。

 npm install @easydarwin/easyplayer --save npm install copy-webpack-plugin@5.1.2 --save-dev

最重要的地方 一定要把这个地方弄好 那就是在vue.config.js里面

const CopyWebpackPlugin = require('copy-webpack-plugin')configureWebpack: {  plugins:[        new CopyWebpackPlugin([          {            from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer.swf',            to: './libs/EasyPlayer/'          },          {            from: 'node_modules/@easydarwin/easyplayer/dist/component/crossdomain.xml',            to: './libs/EasyPlayer/'          },          {            from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer-lib.min.js',            to: './libs/EasyPlayer/'          }        ])  ]}

还需要在public/index.html 引入EasyPlayer-lib.min.js,可以直接在node_modules里找到@easydarwin下的dist/compent/EasyPlayer-lib.min.js复制到pubilc目录下,还有需要EasyPlayer.wasm同样放到public目录下

vue怎么播放flv、m3u8视频流

 4.引入组件使用

vue怎么播放flv、m3u8视频流

到此,相信大家对“vue怎么播放flv、m3u8视频流”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: vue怎么播放flv、m3u8视频流

本文链接: https://www.lsjlt.com/news/357740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue怎么播放flv、m3u8视频流
    本篇内容主要讲解“vue怎么播放flv、m3u8视频流”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么播放flv、m3u8视频流”吧!一、 JessibucaPlayer插件用来播放fl...
    99+
    2023-07-06
  • vue播放flv、m3u8视频流(监控)的方法实例
    目录前文:一、 JessibucaPlayer插件用来播放flv流二、easyplayer插件播放m3u8流总结前文: 随着前端大屏页面的逐渐壮大,客户的需求也越来越多,大屏上面展示...
    99+
    2023-05-16
    vue 播放视频流 vue m3u8 vue 播放视频流
  • vue-video-player 播放m3u8视频流的实现
    该问题网上答案较少,翻阅github得到想要的答案,在此记录一下 首先,为了减少包体积,在组件中局部引入vue-video-player(在main.j s中引入会增加包体积) 播放...
    99+
    2022-11-13
  • Vue怎么接入hls/m3u8的直播视频
    今天小编给大家分享一下Vue怎么接入hls/m3u8的直播视频的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。播放HLS格式的...
    99+
    2023-07-02
  • vue如何通过video.js解决m3u8视频播放格式问题
    这篇文章主要介绍了vue如何通过video.js解决m3u8视频播放格式问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。第一种方法1.在v...
    99+
    2022-10-19
  • html5怎么播放视频
    这篇文章主要讲解了“html5怎么播放视频”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么播放视频”吧! html5...
    99+
    2022-10-19
  • python怎么播放视频
    方法有:1、使用OpenCV库播放视频;2、使用pygame库播放视频;3、使用moviepy库播放视频等。Python作为一种高级编程语言,有很多库和工具可以用来播放视频。在本文中,我将介绍一些常用的库和工具,以及它们的基本用法和示例代码...
    99+
    2023-11-15
    python
  • ffmpeg网页视频流m3u8 ts怎么实现视频下载
    这篇“ffmpeg网页视频流m3u8 ts怎么实现视频下载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ffmpe...
    99+
    2023-07-02
  • vue+video.js怎么实现视频播放列表
    这篇文章主要讲解了“vue+video.js怎么实现视频播放列表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+video.js怎么实现视频播放列表”吧!具体内容如下1.引入Video...
    99+
    2023-06-25
  • 网站上flv/MP4等格式的视频文件播放不出来怎么办
    小编给大家分享一下网站上flv/MP4等格式的视频文件播放不出来怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在做一个网站时,发现视频文件,比如flv,MP...
    99+
    2023-06-08
  • windows播放器无法播放视频怎么解决
    如果Windows播放器无法播放视频,可以尝试以下解决方法:1. 确保视频文件格式受支持:Windows播放器不支持所有视频文件格式...
    99+
    2023-09-11
    windows
  • php视频不能播放怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php视频不能播放怎么办?问题描述:php调用scp上传视频文件无法播放?使用PHP调用scp上传视频文件到目标服务器,上传之后无法播放,原视频文件可以正常播放。代码...
    99+
    2022-11-13
  • 怎么在HTML5中播放 RTSP 视频
    今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前已有 RTSP 播放方案的对比既然是做直播,就需要延迟较低。当摄像头掉线时...
    99+
    2023-06-09
  • win7视频播放速度怎么优化
    本文小编为大家详细介绍“win7视频播放速度怎么优化”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7视频播放速度怎么优化”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win7视频播放速度优化教程首先如果我...
    99+
    2023-07-01
  • Android怎么自定义视频播放器
    要自定义Android视频播放器,可以按照以下步骤进行: 创建一个新的Android项目,并在布局文件中添加一个SurfaceVi...
    99+
    2023-10-26
    Android
  • Android怎么实现音乐视频播放
    这篇文章给大家分享的是有关Android怎么实现音乐视频播放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤新建一个安卓项目,再加一个assets包在 assets中加入一段音频在界面中加入音乐的“开始”按钮和...
    99+
    2023-06-15
  • android怎么实现视频播放功能
    Android可以使用MediaPlayer或ExoPlayer等库来实现视频播放功能。以下是一种常见的实现方法:1. 添加权限和依...
    99+
    2023-08-23
    android
  • Android中怎么利用MediaPlay播放音频和视频
    Android中怎么利用MediaPlay播放音频和视频,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现MediaPlay的基本步骤是创建MediaPlay对象调用setDa...
    99+
    2023-06-04
  • Go语言怎么开发浏览器视频流rtsp转webrtc播放
    本篇内容主要讲解“Go语言怎么开发浏览器视频流rtsp转webrtc播放”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言怎么开发浏览器视频流rtsp转webrtc播放”吧!1. 前言前面我...
    99+
    2023-06-30
  • Win7电脑不能播放视频怎么办
    如果Win7电脑无法播放视频,可以尝试以下方法解决:1. 检查视频文件是否损坏:尝试播放其他视频文件,或者将该视频文件转移到其他设备...
    99+
    2023-09-17
    win7
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作