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
