UNPKG

hjplayer

Version:

hjplayer, a HTML5 Player, can play flv and hls by Media Source Extension, based on typescript;

100 lines (85 loc) 7.35 kB
# 设置参数 初始化播放器的时候需要 `MediaConfig`参数和 `userConfig`(选传) 两个参数 ## MediaConfig | 字段 | 类型 | 字段作用 | | ------------------ | --------------------- | ---------------------------------------- | | `type` | `string` | 播放的媒体文件类型, `'flv'`, `'mp4'` or `'m3u8'`| | `isLive?` | `boolean` | 标明播放的媒体文件是否为一直直播流 | | `cors?` | `boolean` | 标明是否跨域获取问题文件 | | `withCredentials?` | `boolean` | 标明是否在获取媒体文件时携带`cookies` | | `hasAudio?` | `boolean` | 标明媒体流中是否有音频轨道 | | `hasVideo?` | `boolean` | 标明媒体流中是否有视频轨道 | | `duration?` | `number` | 标明媒体的总播放时间(单位: 毫秒) | | `filesize?` | `number` | 标明媒体文件的字节数 | | `url?` | `string` | 媒体文件地址 以`'https(s)'` or `'ws(s)'` (WebSocket)开头 | | `segments?` | `Array<MediaSegment>` | 选填字段, 播放多个视频, 详情请看 **MediaSegment** | ## MediaSegment 如果有`segments`字段, 那么播放器就会将`MediaConfig`当做多个子文件的源, 这时在 `MediaConfig` 中的 `duration` `filesize` `url` 都将被忽略 MediaSegment的参数如下: | 字段 | 类型 | 字段作用 | | ----------- | -------- | ---------------------------------------- | | `duration` | `number` | 必填字段, 每个播放的子媒体文件的播放时长(单位: 毫秒) | | `filesize?` | `number` | 选填字段, 标明每个子媒体文件的字节数 | | `url` | `string` | 必填字段, 每隔子媒体文件的地址 | 传入 `segments` 参数的 demo ```javascript { type: 'flv', // Required "segments": [ { "duration": 3333, // in milliseconds "filesize": 4444, // in bytes "url": "http://xxxx/segments-1.flv" }, { "duration": 5555, "filesize": 6666, "url": "http://xxxx/segments-2.flv" }, { "duration": 7777, "filesize": 8888, "url": "http://xxxx/segments-3.flv" } ... ] } ``` ## userConfig 用户设置的自选可选择以下字段选填 | 字段 | 类型 | 默认值 | 说明 | | -------------------------------- | --------- | ---------------------------- | ---------------------------------------- | | `enableWorker?` | `boolean` | `false` | 启用多线程转码(不太稳定) | | `enableStashBuffer?` | `boolean` | `true` | 是否允许 IO 存储 buffer , 如果你想要减少直播延迟, 请设置为false, 但是网络抖动时会发生卡顿 | | `FORCE_GLOBAL_TAG?` | `boolean` | `false` | 是否在打印消息时启用全局标签 `HJPLAYER`, 不传则打印消息时为各组件标签| | `GLOBAL_TAG` | `string` | `HJPLAYER` | 默认全局标签 | | `ENABLE_CALLBACK` | `boolean` | `false` | 是否触发logger的绑定事件 | `ENABLE_ERROR` | `boolean` | `true` | 是否打印ERROR提示 | | `ENABLE_INFO` | `boolean` | `false` | 是否打印INFO提示 | | `ENABLE_WARN` | `boolean` | `false` | 是否打印WARN提示 | | `ENABLE_DEBUG` | `boolean` | `false` | 是否打印DEBUG提示 | | `stashInitialSize?` | `number` | `384KB` | 标识IO存储buffer的大小, 默认是 `384KB`, 设置合适的缓存可以改善视频的 加载 和 seek 时间 | | `isLive?` | `boolean` | `false` | 和 **MediaConfig** 中的 `isLive` 一致, 在 `MediaConfig`中设置了, 这里的设置会被忽略. `flv only`| | `lazyLoad?` | `boolean` | `true` | 当视频缓存足够长时会断开 HTTP 链接, `flv only`| | `lazyLoadMaxDuration?` | `number` | `3 * 60` | 启用`lazyLoad` 后最大缓存多少秒之后停止加载. | | `lazyLoadRecoverDuration?` | `number` | `30` | 懒加载恢复时长 | | `deferLoadAfterSourceOpen?` | `boolean` | `true` | 在 MediaSource `sourceopen` 事件触发后加载. 在Chrome中只有标签页在 focus 时才会触发 `sourceopen` 事件 | | `autoCleanupSourceBuffer` | `boolean` | `false` | 是否自动清理 SourceBuffer | | `autoCleanupMaxBackwardDuration` | `number` | `3 * 60` | 当 `backward buffer` 超过此值(单位: 秒) 时, 自动清理 SourceBuffer | | `autoCleanupMinBackwardDuration` | `number` | `2 * 60` | 标识自动清理 `SourceBuffer` 时的恢复时间(单位: 秒) | | `fixAudioTimestampGap` | `boolean` | `true` | 当发现大的音频的缺口时, 填充静默的音频帧避免音视频不同步 | | `accurateSeek?` | `boolean` | `false` | 精准seek操作, 有点慢, 需要 `Chrome` 50+ 版本 `FireFox` and `Safari` 浏览器 | | `seekType?` | `string` | `'range'` | 利用`'range'` 请求进行 seek 操作, 或者在 url 中添加参数进行seek 操作 | | `seekParamStart?` | `string` | `'bstart'` | 标识 seek 操作的开始时间参数, `seekType = 'param'` | | `seekParamEnd?` | `string` | `'bend'` | 标识 seek 操作的结束时间参数, `seekType = 'param'` | | `rangeLoadZeroStart?` | `boolean` | `false` | 当用 Range seek时, 第一次加载时发送 `Range: bytes=0-` 参数 | | `customSeekHandler?` | `object` | `undefined` | 标识一个自定义的 seek 方法 | | `reuseRedirectedURL?` | `boolean` | `false` | 对后续的 `seek`, 重连等请求时拒绝301/302跳转 | | `referrerPolicy?` | `string` | `no-referrer-when-downgrade` | 当用 `FetchStreamLoader` 时 referrerPolicy标识 [Referrer Policy][]| | `headers?` | `object` | `undefined` | 标识需要添加到请求头中的额外 headers | HLS config. | | `tsAutoLevelChoose?` | `boolean` | `false` | 当播放master.m3u8时是否自动选择适合当前网络的最大码率的视频 | | `maxFragLookUpTolerance?` | `float` | `0.25` | 视频 seek 时 时间上下浮动范围值(单位: 秒) | | `defaultAudioCodec` | `undefined`| `undefined` | 默认音频编码 | [Referrer Policy]: https://w3c.github.io/webappsec-referrer-policy/#referrer-policy