前端播放flv格式视频

上篇文章我们讲到了使用hls.js播放m3u8格式视频流;本以为万事大吉,后来才发现是我错了,我远远低估了客户提需求的能力,今天说还需要支持播放flv格式的视频流,在我一番折腾之下,终于找到了解决办法。

本文以angular为例,如需在vue等前端框架中使用,只需把对应的生命周期、事件绑定、变量声明等改为vue语法即可!

  • 下面为使用步骤:

1、使用npm安装flv.js;

npm install --save flv.js

2、在HTML文件中添加对应标签;

<video controls autoplay="autoplay" muted="muted" id="videoElement">
    <source type="video/mp4">
</video>
<button (click)="play()">播放</button>

3、在ts文件中使用。

//引用
import * as flvjs from 'flv.js';

//声明两个变量
player: any;
flvPlayer: any;

//页面初始化
ngOnInit() {
  if (flvjs.default.isSupported()) {
    // 获取DOM对象
    this.player = document.getElementById('videoElement');
    // 创建flvjs对象
    this.flvPlayer = flvjs.default.createPlayer({
      type: 'flv',        // 指定视频类型
      isLive: true,       // 开启直播
      hasAudio: false,    // 关闭声音
      cors: true,         // 开启跨域访问
      url: '你的视频地址',   // 指定流链接
    });
    // 将flvjs对象和DOM对象绑定
    this.flvPlayer.attachMediaElement(this.player);
  }
}

// 播放视频
play(){
  this.flvPlayer.load();  // 加载视频
  this.flvPlayer.play();  // 播放
}

//页面退出销毁和暂停播放
ngOnDestroy(){
  this.flvPlayer.pause();
  this.flvPlayer.unload();
  // 卸载DOM对象
  this.flvPlayer.detachMediaElement();
  // 销毁flvjs对象
  this.flvPlayer.destroy();
}

最终效果图如下:

flv.png

至此,功能实现,特此记录!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容