vue中播放flv格式视频

该文章展示了如何在Vue项目中安装并使用flv.js库来播放FLV格式的视频,包括引入库、创建播放器实例、设置配置参数以及播放、销毁视频等操作。同时提到了flv.js的API参考链接。

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

安装flv.js

  cnpm i flv.js@1.6.2
  或
  npm i flv.js@1.6.2

引入

import flvjs from 'flv.js'

完整代码

<template>
  <div class="myVideo-video">
    <video id="myFlvVideo" autoplay controls />
  </div>
</template>

<script>
import flvjs from 'flv.js'
export default {
  beforeDestroy () {
    this.destoryVideo()
  },
  mounted () {
     let url = 'flv格式视频地址'
    this.createVideo (url)
  },
  methods: {
    createVideo (url) {
      if (flvjs.isSupported()) {
        var videoElement = document.getElementById('myFlvVideo')
        this.flvPlayer = flvjs.createPlayer(
          {
            type: 'flv',
            url: url,
          },
          {
            cors: true, // 是否跨域
            // enableWorker: true, // 是否多线程工作
            // enableStashBuffer: false, // 是否启用缓存
            // stashInitialSize: 128, // 缓存大小(kb)  默认384kb
            // autoCleanupSourceBuffer: true // 是否自动清理缓存
          }
        )
        this.flvPlayer.attachMediaElement(videoElement)
        this.flvPlayer.load()
        this.flvPlayer.play()
      }
    },
    destoryVideo () {
      this.flvPlayer.pause()
      this.flvPlayer.unload()
      this.flvPlayer.detachMediaElement()
      this.flvPlayer.destroy()
      this.flvPlayer = null
    },
  }
}
</script>

<style lang="scss" scoped>
.myVideo-video {
  width: 500px;
  height: 400px;

  video {
    border: 1px solid #000;
    width: 100%;
    height: 100%;
  }
}
</style>

flv.js api文档

参考: https://www.jianshu.com/p/5075dc581bba

### 实现 FLV 视频播放 为了在 Vue 项目中实现 FLV 视频播放,可以采用 `flv.js` 库来处理这种特定格式视频文件。此库是由 bilibili 网站开源的一个用于解析并播放 FLV 流的 JavaScript 解决方案[^2]。 #### 安装依赖项 首先需要安装必要的 npm 包: ```bash npm install flv.js --save ``` 这一步骤会将 `flv.js` 添加到项目的依赖列表里以便后续调用。 #### 配置 main.js 文件 接着,在入口文件 `main.js` 中全局注册 `flv.js` 和 Video.js 插件,使得整个应用都能访问这些工具函数: ```javascript import &#39;video.js/dist/video-js.css&#39;; import videojs from &#39;video.js&#39;; import flvJs from &#39;flv.js&#39;; if (flvJs.isSupported()) { window.flvPlayer = null; } Vue.prototype.$video = videojs; new Vue({ render: h => h(App), }).$mount(&#39;#app&#39;); ``` 这段代码不仅导入了样式表和核心功能模块,还检查浏览器是否支持通过 `flv.js` 来解码 FLV 格式音视频数据流,并初始化了一个全局变量用来保存创建出来的播放实例对象[^3]。 #### 创建组件以展示视频播放器 最后一步是在具体页面或组件内定义一个简单的 HTML5 `<video>` 元素作为容器,并编写相应的方法去控制其行为: ```html <template> <div id="example"> <!-- 使用 data-setup 属性提供 JSON 形式的配置 --> <video ref="myVideo" class="video-js vjs-default-skin"></video> </div> </template> <script> export default { mounted() { const myPlayer = this.$refs.myVideo; if (window.flvPlayer !== null) { window.flvPlayer.destroy(); } let playerInstance = this.$video(myPlayer, {}, function onPlayerReady() {}); var videoSourceUrl = "http://your-flv-file-url-here"; if (window.flvJs.isSupported()) { window.flvPlayer = window.flvJs.createPlayer({ type: &#39;flv&#39;, isLive: false, url: videoSourceUrl }); window.flvPlayer.attachMediaElement(myPlayer); window.flvPlayer.load(); window.flvPlayer.play(); } }, }; </script> ``` 上述模板中的 `mounted()` 生命周期钩子会在组件挂载完成后执行一次性的设置操作;这里包含了销毁旧有播放器实例(如果有)、获取 DOM 节点引用以及利用 `flv.js` 初始化新的播放器逻辑[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

k0933

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值