flv拉流在项目中如何使用(二)

简介: 这里主要是我们不能使用video容器自带的暂停和播放按钮了,我们要隐藏原来的自己实现暂停和播放。暂停和播放说白了就是断流和重新拉流

四.细节问题处理

   这里主要是我们不能使用video容器自带的暂停和播放按钮了,我们要隐藏原来的自己实现暂停和播放。暂停和播放说白了就是断流和重新拉流


// 播放和暂停实现逻辑
        const onclick = isplay => {
            // isplay表示视频是否正在播放
            if (isplay) {
                // 在播放 断流
                player.unload();
                player.detachMediaElement(video.current);
            } else {
                // 已断流,重新拉流
                player.attachMediaElement(videoEl.current);
                player.load();
                player.play();
            }
        }


五.flv如何监听错误(异常)

 flvjs.Events表示事件

      flvjs.ErrorTypes表示一级错误

      flvjs.ErrorDetails表示二级错误

      一级错误又分为:

      NETWORK_ERROR:网络错误,表示连接问题

      MEDIA_ERROR:媒体错误,格式或解码问题

      OTHER_ERROR:其他错误

      二级错误分为:

      NETWORK_STATUS_CODE_INVALID:http状态码错误,说明指定流的地址url地址有误

      NETWORK_TIMEOUT:连接超时,后台或者网络问题

      MEDIA_FORMAT_UNSUPPORTED:媒体格式不支持,一般是流数据不是flv的格式

// 监听错误事件
        flvPlayer.on(flvjs.Events.ERROR, (err, errdet) => {
            // err表示一级异常,errdet表示二级异常
            if (err == flvjs.ErrorTypes.MEDIA_ERROR) {
                console.log("媒体错误");
                if (errdet == flvjs.ErrorDetails.MEDIA_FORMAT_UNSUPPORTED) {
                    console.log("媒体格式不支持");
                }
            };
            if (err == flvjs.ErrorTypes.NETWORK_ERROR) {
                console.log("网络错误");
                if (errdet == flvjs.ErrorDetails.NETWORK_STATUS_CODE_INVALID) {
                    console.log("http状态码异常");
                }
            }
            if (err == flvjs.ErrorTypes.OTHER_ERROR) {
                console.log("其他异常", errdet);
            }
        })

相关文章
|
4月前
|
网络协议 应用服务中间件 Linux
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
【音视频 ffmpeg 学习】 RTMP推流 mp4文件
|
8月前
|
编解码 开发工具 C#
Windows平台RTMP/RTSP直播推送模块设计和使用说明
好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的Windows平台RTSP、RTMP直播推送模块,设计和使用说明,供大家参考。
375 0
|
8月前
|
编解码 网络协议 Android开发
Android平台RTMP|RTSP直播播放器功能进阶探讨
很多开发者在跟我聊天的时候,经常问我,为什么一个RTMP或RTSP播放器,你们需要设计那么多的接口,真的有必要吗?带着这样的疑惑,我们今天聊聊Android平台RTMP、RTSP播放器常规功能,如软硬解码设置、实时音量调节、实时快照、实时录像、视频view翻转和旋转、画面填充模式设定、解码后YUV、RGB数据回调等:
107 0
|
8月前
|
编解码 开发工具 图形学
Unity环境下RTMP推流+RTMP播放低延迟解决方案
在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总,权当抛砖引玉。
446 0
|
8月前
|
Linux 开发工具 图形学
Unity下如何实现RTMP或RTSP流播放和录制
在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程: 1. 通过Native RTSP或RTSP直播播放SDK回调RGB/YUV420/NV12等其中的一种未压缩的图像格式; 2. Unity下创建相应的RGB/YUV420等Shader; 1. Unity从各个平台获取图像数据来填充纹理即可。
180 0
|
8月前
|
图形学 开发者 Windows
Unity平台如何实现RTSP转RTMP推送?
Unity平台下,RTSP、RTMP播放和RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去?
|
8月前
|
编解码 开发工具 Android开发
人狠话不多,细说大牛直播SDK之RTMP播放器和RTSP播放器
在没测试过大牛直播SDK的RTMP和RTSP播放器之前,你甚至不相信行业内,RTMP和RTSP播放器(特别是RTMP播放器)延迟可以稳定的做到1秒以内。
607 0
|
10月前
|
移动开发 前端开发 网络协议
flv拉流在项目中如何使用(一)
最近做的项目里面用到通过前端flv.js拉流播放直播视频(实时视频);这里给大家介绍一下流程,首先是前端发送请求后端给返回一个直播流指定地址,然后前端把这个地址通过flv处理放到video容器中进行播放;
295 0
|
10月前
|
Web App开发 编解码 网络协议
网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议
网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议
227 0
|
JavaScript 视频直播 5G
基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能
由于5g网络的光速推广,视频业务又被推上了风口浪尖,在2019年初我们还在谈论照片,短视频等关键字,而进入2020年,我们津津乐道的就只有视频,视频,还是视频,普通人拿起手机做直播早已不是奢望。
基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能