Flv.js文档使用随记

Flv.js文档使用随记

2023年6月27日发(作者:)

⽂档使⽤随记0x001: 前⾔以下涉及到 所有内容均是V1.5.0版本内的,如⽅法、属性、常量、监听等等,不讨论视频编解码,只陈述官⽅⽂档内容。采⽤⽂字+图⽚形式,单⽂字描述怕不好理解,单图⽚模式⼜怕将来哪天会挂掉,现在很多年份久的博⽂就有这情况,也不是没遇到过。⾮前端⼯作者,部分术语可能描述不得当,望理解。纯⼿码字⼀下午,只是为了时间久后遗忘再回来看⼀下。0x002: 架构图

0x003: API⽂档相关内容orted()// 查看当前浏览器是否⽀持,返回类型为布尔值Player(mediaDataSource: MediaDataSource, config?: Config)/* 创建⼀个Player实例,它接收⼀个MediaDataSource(必选), ⼀个Config(可选),如: var flvPlayer = Player({ type: 'flv', url: '/flv/' }); */MediaDataSource的字段列表如下,这⾥说下最后⼀个segments字段(其余字段都很简单),它接收⼀个数组,类型为MediaSegment,MediaSegment的字段列表如下,如果segments字段存在,transmuxer将把此MediaDataSource视为多⽚段源。在多⽚段模式下,将忽略MediaDataSource结构中的duration filesize url字段。什么个意思呢,⽤⽩话说就是如果指定了segments字段那么之前指定的duration filesize url字段就不再⽣效了,将标志这是⼀个多⽚段合成⼀个的视频,进度条的总时长就等于各⽚段相加的和,所以每个⽚段的duration filesize⼀定要指定准确。Config字段很多,就不⼀⼀介绍了,如下

tureList()

// 返回⼀些功能特性列表,⽐如是否⽀持FLV直播流、H264 MP4 视频⽂件等等,如下

yer(mediaDataSource, optionalConfig)Player(mediaDataSource, optionalConfig)

// 这两个⽅法都继承⾃ Player抽象接⼝,⼀个是创建适⽤于FLV的Player实例,⼀个是适⽤于MP4的Player实例,如下 其实 Player(略) 内部就是根据 type 分别创建不同的Player实例,⾃⼰去看看源码就知道了。如下interface Player (abstract)

// 它⾥⾯的每个⽅法或属性其实就是你⾃⼰创建出来Player实例的部分⽅法或属性,可直接调⽤。如下gControl// ⼀个全局接⼝,⽤于设置 的⽇志级别。如下举⼏个简单的例⼦:fig()  

// 获取当前⽇志项的配置情况,如

enableCallback: trueenableDebug: trueenableError: trueenableInfo: trueenableVerbose: trueenableWarn: trueforceGlobalTag: trueglobalTag: ""Verbose/* 输出详细调试信息,默认为true,页⾯加载后会在控制台打印⼀些解码⽇志信息,如forceGlobalTag例⼦中的⽇志那样。设置 false; 控制台不再打印。*/lobalTag// 默认false;未设置之前的log打印是这样[MSEController] > MediaSource onSourceOpen[FLVDemuxer] > Parsed onMetaData[FLVDemuxer] > Parsed AVCDecoderConfigurationRecord[FLVDemuxer] > Parsed AudioSpecificConfig[MSEController] > Received Initialization Segment, mimeType: video/mp4;codecs=avc1.640028[MSEController] > Received Initialization Segment, mimeType: audio/mp4;codecs=mp4a.40.5[FlvPlayer] > Maximum buffering duration exceeded, suspend transmuxing task设置 true; 后是这样[] > MediaSource onSourceOpen[] > Parsed onMetaData[] > Parsed AVCDecoderConfigurationRecord[] > Parsed AudioSpecificConfig[] > Received Initialization Segment, mimeType: video/mp4;codecs=avc1.640028[] > Received Initialization Segment, mimeType: audio/mp4;codecs=mp4a.40.5[] > Maximum buffering duration exceeded, suspend transmuxing task[] > MediaSource onSourceEnded // 可以与()/ ()⼀起使⽤的⼀系列常量。需要使⽤前缀。如下etails// 是⼏个错误类型以及相应类型对应的错误详情,可以⽤来做些判断。也需要使⽤前缀。如下0x004: 直播播放 ⽂档相关内容  您需要在MediaDataSource中提供⼀个实时流URL(可以是HTTP 或 WebSocket),并指⽰isLive:true。如下 var flvPlayer = Player({ type: "flv", isLive: true, url: "127.0.0.1:8080/live/" });0x005: 多段播放 ⽂档相关内容  多⽚段配置⽰例,需注意的是⽂档强调:您必须为每个细分提供准确的持续时间。0x006: 使⽤记录可以在播放前指定MediaDataSource参数,hasAudio(是否有⾳频)及hasVideo(是否有视频),单独指定单独有,都指定则都有。SeekTo功能 或 tTime属性 接收的值类型是Number,如78或108.999,单位秒

0x007: 问题记录  Q1:点击进度条的未缓冲区域时,不会跳转到对应时间处继续播放,⽽是⽆响应。⽐如6分钟MV,当前播放到3分0秒,当前缓冲到5分0秒,如果点击进度条到5分01秒或之后播放器就⽆响应了。  A1:⽬前⽤户层的解决办法只能先点击到离缓冲区最近的时长,如4分59秒,播放器才会⾃动缓冲接下来未缓冲的⽚段。⼩⽂件基本⽆感,⼤⽂件才会有体现。(点播,视频源类型flv,H264+AAC,⼤⼩111 MB )  QN:...........

0x008: 完结

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687822002a48146.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信