flvjs.createPlayer 方法可以传入多个配置参数,下面是官方文档中的全部可用配置参数:
{ // flv mp4 hlstype: '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
: 其他配置选项。
相关阅读:
·Flv.js,使浏览器在不借助Flash的情况下播放FLV成为可能
转载文章,来源:http://wed.xjx100.cn/news/242586.html