flvjs.createPlayer 方法可以传入多个配置参数,下面是官方文档中的全部可用配置参数:
{
// flv mp4 hls
type: 'flv',
// 是否启用 worker,开启后会使用 web worker 解析数据,提高性能
enableWorker: false,
// 是否为直播流
isLive: false,
// 是否启用媒体源缓存功能
enableStashBuffer: true,
// 缓存的初始大小,单位为字节,默认值为 384 KB
stashInitialSize: 384 * 1024,
// 缓存起始时间,单位为秒,默认值为 0.8 秒
stashInitialTime: 0.8,
// 是否启用懒加载功能
lazyLoad: true,
// 最大懒加载时长,单位为秒,默认值为 3 秒
lazyLoadMaxDuration: 3,
// 是否在打开媒体源之前延迟加载媒体
deferLoadAfterSourceOpen: false,
// 是否启用 fetch 并行请求
// 如果启用,可以提高加载速度,但可能会占用更多的带宽
// 当启用时,flv.js 会根据 HTTP Range 头信息来并行请求媒体内容
// 如果服务器不支持 Range 头信息,则只能串行请求内容
enableRangeRequest: false,
// 每次请求的最大并发数
// 当 enableRangeRequest 启用时,maxParallelRequest 控制并发数,默认值为 2
maxParallelRequest: 2,
// 是否启用手动控制缓存大小
// 如果开启,需要手动调用 player.bufferringTime 来修改缓存大小
enableCustomBaditBuffer: false,
// 最大缓存时间,单位为秒,默认为 60 秒
maxBufferingTime: 60,
// 指定每个分片的缓存时长,单位为秒,默认为 10 秒
// 如果启用了手动控制缓存,该配置项将失效
stashTime: 10,
// 音频缓存大小,单位为秒,默认值为 0.5 秒
audioBufferSize: 0.5,
// 视频缓存大小,单位为秒,默认值为 0.5 秒
videoBufferSize: 0.5,
// 是否启用优化后的播放器布局逻辑
enableOptimizedLayout: false,
// 是否启用低延迟模式,仅在 isLive 为 true 时生效
lowLatencyMode: false,
// 是否开启自适应码率
enableAutoQuality: false,
// 检测到错误时是否自动重试
autoReloadOnError: true,
// 是否启用键盘快捷键功能,在页面上通过键盘进行操作
enableKeyboard: true,
// 是否启用鼠标事件功能,在页面上通过鼠标进行操作
enableMouse: true,
// 是否启用 Touch 事件功能,在触屏设备上通过手势进行操作
enableTouch: true,
// 是否启用全屏幕模式
enableFullscreen: true,
// 是否开启本地日志记录
enableStashConsole: false,
// 是否开启性能监测功能,默认为 true
enablePerformanceMonitor: true,
// 自定义 CDN 加速地址
segmentsSyncUrlBuilder: null,
// 预加载的分片数量,单位为个,默认值为 3 个
segmentStartFetchNum: 3
}
以上是全部的 flvjs.createPlayer 方法可用配置参数。您可以根据自己的实际需求,选择需要的配置项进行传参。
播放器创建
[static] createPlayer(mediaDataSource: Object, optionalConfig: Object): Player
: 创建一个新的播放器实例。
客户端控制
-
play(): void
: 开始播放视频。 -
pause(): void
: 暂停视频播放。 -
destroy(): void
: 销毁播放器实例并释放资源。 -
attachMediaElement(mediaElement: HTMLVideoElement): void
: 绑定 HTMLVideoElement 元素并进行播放。 -
detachMediaElement(): void
: 解绑 HTMLVideoElement 元素。 -
attachMSE(mse: MediaSource): void
: 绑定 MediaSource 对象。 -
detachMSE(): void
: 解绑 MediaSource 对象。 -
load(optional: {reset: boolean}): void
: 加载当前流并准备播放,但不自动开始播放。 -
unload(): void
: 卸载当前流。 -
toggle(): void
: 切换播放状态。 -
isPlaying(): boolean
: 返回播放器是否正在播放。 -
getDuration(): number
: 返回流总播放时间。 -
getCurrentTime(): number
: 返回当前播放时间。 -
setCurrentTime(time: number): void
: 跳转到指定时间点进行播放。 -
getVolume(): number
: 返回当前音量。 -
setVolume(volume: number): void
: 设置音量。 -
mute(): void
: 静音。 -
unmute(): void
: 取消静音。 -
getPlaybackRate(): number
: 返回播放速率。 -
setPlaybackRate(rate: number): void
: 设置播放速率。
事件触发
-
on(eventType: string, listener: Function): void
: 监听指定事件类型并执行对应回调函数。 -
off(eventType: string, listener: Function): void
: 取消对指定事件类型的监听。 -
once(eventType: string, listener: Function): void
: 监听指定事件类型,并在触发一次后自动取消监听。
状态获取
-
getState(): string
: 返回当前播放器状态。 -
getNetworkState(): number
: 返回当前网络状态。 -
getReadyState(): number
: 返回当前视频准备状态。 -
getStatisticsInfo(): Object
: 返回当前统计信息。 -
isSeeking(): boolean
: 返回是否正在执行跳转操作。 -
isPaused(): boolean
: 返回是否处于暂停状态。 -
isEnded(): boolean
: 返回是否已经播放结束。 -
getCurrentBuffer(): number
: 返回当前缓冲区时间。 -
getLoadedTime(): number
: 返回已加载的缓冲区总时间。 -
getMediaInfo(): Object
: 返回当前媒体信息。
内部方法
这些方法主要是为了支持 flv.js 的内部实现所使用,不建议直接调用。
-
selectSeekHandler(mediaDataSource: Object, optionalHandlers: Object): void
: 进行下载分析并选择最合适的 seekHandler 处理器。 -
destroyAllPlayers(): void
: 销毁所有创建的播放器实例。 -
probe(url: string, probes: Array<ProbeItem>): any
: 探查指定 URL 的媒体类型。 -
recoverMediaError(): void
: 恢复媒体错误。 -
isSupported(): boolean
: 返回当前浏览器是否支持 flv.js。 -
getFeatureList(): Object
: 返回 flv.js 的功能特性列表。
配置选项
创建播放器实例时可以传入配置选项进行自定义配置,具体参数如下:
-
autoCleanupSourceBuffer?: boolean
: 是否在销毁播放器实例时清空 MSE 缓存。默认值为 true。 -
autoPlay?: boolean
: 是否在加载流时自动播放视频。默认值为 true。 -
debug?: boolean
: 是否启用调试模式。默认值为 false。 -
enableWorker?: boolean
: 是否开启 Web Worker 支持。默认值为 true。 -
fetchConfiguration?: any
: 远程资源请求配置。默认值为 undefined。 -
isLive?: boolean
: 是否为直播流。默认值为 false。 -
liveBufferLatency? number
: 直播缓冲时延。默认值为 4。 -
lazyLoadMaxDuration?: number
: 懒加载最大时长,超过该值则关闭懒加载。默认值为3 * 60。 -
lazyLoadRecoverDuration?: number
: 恢复懒加载前需要恢复的时长。默认值为30。 -
maxBufferLength?: number
: 最大缓冲区长度。默认值为 30。 -
maxBufferSize?: number
: 最大缓冲区大小。默认值为 512 * 1024。 -
maxRetryDelay?: number
: 最大重试延迟时间。默认值为 64000。 -
metadata?: boolean
: 是否启用 metadata 解析。默认值为 true。 -
accurateSeek?: boolean
: 是否使用精准跳转。默认值为 true。 -
segmentsChecked?: boolean
: 是否启用分段检查。默认值为 true。 -
stashInitialSize?: number
: 初始缓存大小。默认值为 384 * 1024。 -
stashInitialTime?: number
: 初始缓存时长。默认值为 4。 -
type?: string
: 视频类型。默认值为 “flv”。 -
url?: string
: 视频地址。默认值为 undefined。 -
keyframePoint?: number
: 关键帧点。默认值为 0.2。 -
cors?: boolean
: 是否允许跨域请求。默认值为 false。 -
withCredentials?: boolean
: 是否启用对跨域请求的凭证支持。默认值为 false。 -
hasAudio?: boolean
: 流是否包含音频轨道。默认值为 true。 -
hasVideo?: boolean
: 流是否包含视频轨道。默认值为 true。 -
config?: any
: 其他配置选项。