flv.js接口介绍

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: 其他配置选项。

猜你喜欢

转载自blog.csdn.net/huapeng_guo/article/details/130963965
今日推荐