flv.js 直播_前端视频播放插件

flv.js 直播_前端视频播放插件关于使用flvjs文章目录关于使用flvjs1.创建2.事件处理3.踩到的坑1.创建HTML<videoid=”largeVideo”style=”width:100%;height:600px”class=”centeredVideo”controlsautoplaymutedwidth=”1015″

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

关于使用flvjs

1.创建

HTML

        <video id="largeVideo" style="width: 100%; height: 600px" class="centeredVideo" controls autoplay muted width="1015" height="576" >
          Your browser is too old which doesn't support HTML5 video.
        </video>

Jetbrains全家桶1年46,售后保障稳定

javascript

 let flvPlayerRef1 = document.getElementById("largeVideo");//获取创建dom
 let flvPlayerObjM1 = flvjs.createPlayer(
          { 
   
            type: "flv",
            isLive: true, //是否直播
            url: url, //地址
            hasAudio: true,
            hasVideo: true,
          },
          { 
   
            cors: true, // 是否跨域
            stashInitialSize: 384, // 缓存大小(kb) 默认384kb
            enableStashBuffer: true, // 是否启用缓存
            autoCleanupMaxBackwardDuration: 3 * 60,//自动清除缓存时间
            enableWorker: false, // 是否多线程工作
            autoCleanupSourceBuffer: true, // 是否自动清理缓存
            fixAudioTimestampGap: true,//音视频同步
          }
 flvPlayerObjM1.load(); //加载
 flvPlayerObjM1.play(); //播放

2.事件处理

flvjs.Events.STATISTICS_INFO 信息出错销毁直播

flvPlayerRef1.on(flvjs.Events.STATISTICS_INFO, function (res) { 
   
         	flvPlayerObjM1.pause();
            flvPlayerObjM1.unload();
            flvPlayerObjM1.detachMediaElement();
            flvPlayerObjM1.destroy();
            flvPlayerObjM1 = null;
});

flvjs.Events.ERROR 断流报错销毁

flvPlayerRef1.on(
          flvjs.Events.ERROR,
          (errorType, errorDetail, errorInfo) => { 
   
            console.log("errorType:", errorType);
            console.log("errorDetail:", errorDetail);
            console.log("errorInfo:", errorInfo);
            flvPlayerObjM1.pause();
            flvPlayerObjM1.unload();
            flvPlayerObjM1.detachMediaElement();
            flvPlayerObjM1.destroy();
            flvPlayerObjM1 = null;
          }
        );

flvjs.Events.VIDEO_FROZEN视频卡顿监听

flvPlayerRef1.on(
          flvjs.Events.VIDEO_FROZEN,
          (errorType, errorDetail, errorInfo) => { 
   
            console.log("errorType:", errorType);
            console.log("errorDetail:", errorDetail);
            console.log("errorInfo:", errorInfo);
            flvPlayerObjM1.pause();
            flvPlayerObjM1.unload();
            flvPlayerObjM1.detachMediaElement();
            flvPlayerObjM1.destroy();
            flvPlayerObjM1 = null;
          }
        );

将创建写入方法,在事件监听中调用可以实现断流重连,卡顿重连等问题

3.踩到的坑

当使用创建时,记住每次都需要销毁当前创建的直播流,是整个都需要销毁,不然很容易造成内存溢出,直接导致浏览器卡死,在断流重连和卡顿修复的时候尤其注意是否完全销毁这个直播组件!!!


新加
flv传入的url最好遵循同源策略,不要跨协议去请求。如果是用rtmp可以不考虑此处
在这里插入图片描述

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234853.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • centos7 配置lamp 环境[通俗易懂]

    centos7 配置lamp 环境[通俗易懂]搭建版本版本组合php5.6+apache/2.4.6(centos7)+mysql5.7.24因为新系统不能确认哪些指令已经搭建所以安装前需要确认下是否拥有检测是否已经安装过Vimrpm-qa|grepvim显示出完整的包名:vim-common,vim-enhanced,vim-minimal,vim-filesystem表示安装成功若是缺少Vim包名:则使用命令:比如说:vim-enhanced这个包少了,执行:yum-yinstallvim-enha..

  • 日记本[通俗易懂]

    日记本[通俗易懂]1、懒人版安装教程:http://zengwu3915.blog.163.com/blog/static/278348972013448020461/

  • 《Android应用开发揭秘》连载2

    《Android应用开发揭秘》连载2《Android应用开发揭秘》  书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010年3月(1版2次)开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China-pub预订地址:http://www.china-pub.

  • SpringBoot笔记(五)Linux系统与项目部署

    SpringBoot笔记(五)Linux系统与项目部署Linux操作系统与项目部署**注意:**本版块会涉及到操作系统相关知识。现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Android和iOS操作系统,还有程序员比较青睐的MacBook,预装MacOS操作系统,甚至连Macbook的Touchbar都有一个自己的小型操作系统。操作系统是管理计算机硬件与软件资源的计算机程序,操作系统可以对计算机系统的各项资源板块开展调度工作,运用计算机操作系统可以减少人工资源分配的工作强度。.

  • java工具大全[通俗易懂]

    java工具大全[通俗易懂]一、Java线上诊断工具ArthasArthas阿里巴巴2018年9月开源的一款Java线上诊断工具。工具的使用场景:1、这个类从哪个jar包加载的?为什么会报各种类相关的Exception?2、我改的代码为什么没有执行到?难道是我没commit?分支搞错了?3、遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?4、线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!5、是否有一个全局视角来查看系统的运行状况?6、有什么办法可以监控到JVM的

  • 在线聊天系统源码

    在线聊天系统源码在线聊天系统:https://www.lmcjl.com/index/program/view在线聊天系统系统采用了Lumen为框架,通过Nodejs实现在线多客服对多用户的对接。配置信息:linux(centos系统或者是ubuntu系统)+php7+mysql+nodejs演示地址:https://www.lmcjl.com/index/program/view解释id…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号