ezuikit-flv 1.0.3-alpha.9 → 1.0.3-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ezuikit-flv",
3
- "version": "1.0.3-alpha.9",
3
+ "version": "1.0.3-beta.2",
4
4
  "main": "./index.js",
5
5
  "types": "./types",
6
6
  "author": "Ezviz-OpenBiz",
@@ -17,13 +17,10 @@ export namespace DEFAULT_PLAYER_OPTIONS {
17
17
  export let videoBufferDelay: number;
18
18
  export let scaleMode: number;
19
19
  export let debug: boolean;
20
- export let loadingTimeout: number;
21
- export let heartTimeout: number;
22
20
  export let timeout: number;
23
- export let loadingTimeoutReplay: boolean;
24
- export let heartTimeoutReplay: boolean;
21
+ export let loadingTimeout: number;
22
+ export let loadingTimeoutDelay: number;
25
23
  export let loadingTimeoutReplayTimes: number;
26
- export let heartTimeoutReplayTimes: number;
27
24
  export let keepScreenOn: boolean;
28
25
  export let isMute: boolean;
29
26
  export let hasAudio: boolean;
@@ -33,6 +30,7 @@ export namespace DEFAULT_PLAYER_OPTIONS {
33
30
  export let staticPath: string;
34
31
  export let url: string;
35
32
  export let rotate: number;
33
+ export let isLive: boolean;
36
34
  export let forceNoOffscreen: boolean;
37
35
  import protocol = PLAYER_PLAY_PROTOCOL.fetch;
38
36
  export { protocol };
@@ -44,6 +42,7 @@ export namespace DEFAULT_PLAYER_OPTIONS {
44
42
  export let openWebglAlignment: boolean;
45
43
  export let wasmDecodeAudioSyncVideo: boolean;
46
44
  export let useWebFullScreen: boolean;
45
+ export let autoPlay: boolean;
47
46
  export namespace loggerOptions {
48
47
  let level: string;
49
48
  }
@@ -107,6 +106,7 @@ export namespace EVENTS {
107
106
  export let delayTimeout: string;
108
107
  let loadingTimeout_1: string;
109
108
  export { loadingTimeout_1 as loadingTimeout };
109
+ export let loadingRetryTimes: string;
110
110
  export let stats: string;
111
111
  export let performance: string;
112
112
  export let buffer: string;
@@ -155,10 +155,6 @@ export namespace FLV_EVENTS {
155
155
  export { log_1 as log };
156
156
  import start_1 = EVENTS.start;
157
157
  export { start_1 as start };
158
- import timeout_2 = EVENTS.timeout;
159
- export { timeout_2 as timeout };
160
- import loadingTimeout_2 = EVENTS.loadingTimeout;
161
- export { loadingTimeout_2 as loadingTimeout };
162
158
  import delayTimeout_1 = EVENTS.delayTimeout;
163
159
  export { delayTimeout_1 as delayTimeout };
164
160
  let fullscreen_1: string;
package/types/index.d.ts CHANGED
@@ -44,7 +44,6 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
44
44
  static ROTATE: number[];
45
45
  /** */
46
46
  static TIMEOUT: {
47
- loadingTimeout: string;
48
47
  delayTimeout: string;
49
48
  };
50
49
  /**
@@ -79,10 +78,11 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
79
78
  urlInfo: {};
80
79
  /** @type {Services} */
81
80
  services: Services;
82
- _opt: FlvOptions;
81
+ /** @private */
82
+ private _loadingTimeoutDelayTimer;
83
+ _opt: any;
83
84
  $container: any;
84
85
  _loadingTimeoutReplayTimes: number;
85
- _heartTimeoutReplayTimes: number;
86
86
  events: Events;
87
87
  _videoInfo: {};
88
88
  _currentPlayDate: string;
@@ -111,31 +111,39 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
111
111
  * @description 切换清晰度,仅对萤石设备预览生效
112
112
  * @param {VideoLevel} definition 清晰
113
113
  * @since 1.0.3
114
- * @returns {void}
114
+ * @returns {Promise<number>} 0 成功(不代表取流成功), 1 失败
115
115
  */
116
- switchDefinition(definition: VideoLevel): void;
116
+ switchDefinition(definition: VideoLevel): Promise<number>;
117
117
  /**
118
118
  * @description 自定义设置倍速列表, 仅对萤石设备回放生效
119
- * @param {Array<number>} list
119
+ * @param {Array<number>} list 倍速列表
120
120
  * @since 1.0.3
121
121
  * @returns {void}
122
122
  */
123
123
  setPlaybackRateList(list: Array<number>): void;
124
+ /**
125
+ * @description 设置倍速,仅对萤石设备回放生效
126
+ * @since 1.0.3
127
+ */
124
128
  set playbackRate(rate: number);
129
+ /**
130
+ * @description 获取倍速
131
+ * @since 1.0.3
132
+ */
125
133
  get playbackRate(): number;
126
134
  /**
127
135
  * @description 切换倍速,仅对萤石设备回放生效
128
136
  * @param {number} rate
129
137
  * @since 1.0.3
130
- * @returns {void}
138
+ * @returns {Promise<number>} 0 成功(不代表取流成功), 1 失败
131
139
  */
132
- switchPlaybackRate(rate: number): void;
140
+ switchPlaybackRate(rate: number): Promise<number>;
133
141
  /**
134
142
  * @description 获取回放地址
135
143
  * @private
136
144
  * @returns {Promise<string>} // 空字符表示失败
137
145
  */
138
- private _getNewPlaybackPlayUrl;
146
+ private _getNewRecordPlayUrl;
139
147
  /**
140
148
  * @description 是否是萤石开放平台回放
141
149
  * @param {string} url
@@ -155,6 +163,11 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
155
163
  */
156
164
  destroy(): void;
157
165
  player: Player;
166
+ /**
167
+ * @private
168
+ * @param {obejct} videoInfo
169
+ */
170
+ private _handlevideoInfo;
158
171
  /**
159
172
  * @description 初始化播放
160
173
  * @private
@@ -234,7 +247,6 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
234
247
  * @example
235
248
  * flv.setTimeout(3)
236
249
  */
237
- private setTimeout;
238
250
  /**
239
251
  * @description 设置渲染的模式 (video 不支持)
240
252
  * @private
@@ -251,6 +263,7 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
251
263
  * flv.pause()
252
264
  */
253
265
  pause(): Promise<unknown>;
266
+ _delayTimeoutTimer: any;
254
267
  /**
255
268
  * @description 清理画布为黑色背景
256
269
  * @private
@@ -267,6 +280,10 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
267
280
  * flv.play()
268
281
  */
269
282
  play(options?: (string | FlvOptions) | undefined): Promise<any>;
283
+ /**
284
+ * @private
285
+ */
286
+ private __play;
270
287
  /**
271
288
  * @description 播放
272
289
  * @private
@@ -275,6 +292,22 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
275
292
  * @returns {Promise<unknown>}
276
293
  */
277
294
  private _play;
295
+ /**
296
+ * @private
297
+ */
298
+ private _onDelayTimeout;
299
+ /**
300
+ * @private
301
+ */
302
+ private _onLoadingTimeout;
303
+ /**
304
+ * @private
305
+ */
306
+ private _onStreamSuccess;
307
+ /**
308
+ * @private
309
+ */
310
+ private _onStreamError;
278
311
  /**
279
312
  * @description 重新调整视图大小
280
313
  * @param {number=} width 宽
@@ -371,7 +404,7 @@ declare class EzuikitFlv extends EventEmitter<string | symbol, any> {
371
404
  * @param {number=} quality 当格式是jpeg或者webp时,压缩质量,取值0 ~ 1 ,默认 0.92
372
405
  * @param {("download" | "base64" | "blob")} type download,base64,blob, 默认download
373
406
  *
374
- * @returns {string | Blob | undefined}
407
+ * @returns {string | Blob | undefined} undefined 代表截图失败
375
408
  * @since 1.0.3
376
409
  * @example
377
410
  * flv.screenshot()
@@ -7,7 +7,6 @@ export default class BasePlayer extends Emitter {
7
7
  _playing: boolean;
8
8
  _hasLoaded: boolean;
9
9
  _checkHeartTimeout: any;
10
- _checkLoadingTimeout: any;
11
10
  _checkStatsInterval: any;
12
11
  _startBpsTime: any;
13
12
  _isPlayingBeforePageHidden: boolean;
@@ -1,12 +1,7 @@
1
1
  export default class CommonLoader extends Emitter {
2
2
  init: boolean;
3
3
  resetInit(): void;
4
- videoInfo: {
5
- width: string;
6
- height: string;
7
- encType: string;
8
- encTypeCode: string;
9
- };
4
+ videoInfo: any;
10
5
  destroy(): void;
11
6
  updateVideoInfo(data: any): void;
12
7
  play(): void;
@@ -20,15 +20,14 @@ export default class HardPlayer extends BasePlayer {
20
20
  _times: any;
21
21
  $container: HTMLElement;
22
22
  _opt: RequiredFlvOptions;
23
- _hasLoaded: boolean;
24
23
  _checkHeartTimeout: number;
25
24
  _stats: any;
26
- _checkLoadingTimeout: number;
27
25
  control: Control;
28
26
  width: number;
29
27
  height: number;
30
28
  _pause: boolean;
31
29
  _decodedFrames: number;
30
+ _checkLoadingTimeout: number;
32
31
  constructor(container: HTMLElement, options: RequiredFlvOptions);
33
32
  close(): void;
34
33
  _createPlayer(options: RequiredFlvOptions): void;
@@ -40,14 +39,16 @@ export default class HardPlayer extends BasePlayer {
40
39
  * @private
41
40
  */
42
41
  _flvEvents(): void;
42
+ _onVideoLoadstart(): void;
43
+ _onVideoStreamSuccess(): void;
43
44
  getOption(): RequiredFlvOptions;
44
45
  emitError(errorType: string, message?: string): void;
45
46
  /**
46
47
  * @description 销毁实例
47
48
  */
48
49
  destroy(): void;
50
+ _destroy(): void;
49
51
  resetStats(): void;
50
- set loaded(value: boolean);
51
52
  get loaded(): boolean;
52
53
  set playing(value: boolean);
53
54
  get playing(): boolean;
@@ -61,6 +62,14 @@ export default class HardPlayer extends BasePlayer {
61
62
  set videoTimestamp(value: number);
62
63
  get videoTimestamp(): number;
63
64
  get isDebug(): boolean;
65
+ /**
66
+ * @description 检查等待时间 (loading 等待时间)
67
+ */
68
+ checkLoadingTimeout(): void;
69
+ /**
70
+ * @description 清除加载超时
71
+ */
72
+ clearCheckLoadingTimeout(): void;
64
73
  /**
65
74
  * 心跳检查
66
75
  */
@@ -70,12 +79,7 @@ export default class HardPlayer extends BasePlayer {
70
79
  * @description 心跳检查,如果渲染间隔暂停了多少时间之后,就会抛出异常
71
80
  */
72
81
  checkHeartTimeout(): void;
73
- /**
74
- * @description 检查等待时间 (loading 等待时间)
75
- */
76
- checkLoadingTimeout(): void;
77
82
  handleRender(): void;
78
- clearCheckLoadingTimeout(): void;
79
83
  /**
80
84
  *
81
85
  * @param options
@@ -8,10 +8,9 @@ export type TFlvOptions = {
8
8
  scaleMode: 0 | 1 | 2;
9
9
  debug: boolean;
10
10
  timeout: number;
11
- heartTimeout: number;
12
- heartTimeoutReplayTimes: number;
13
11
  loadingTimeout: number;
14
- loadingTimeoutReplay: boolean;
12
+ loadingTimeoutDelay: number;
13
+ loadingTimeoutReplayTimes: number;
15
14
  keepScreenOn: boolean;
16
15
  isMute: boolean;
17
16
  useMSE: boolean;
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export default class SoftPlayer extends BasePlayer {
5
5
  constructor(container: any, options: any);
6
+ _loadingTimeoutDelayTimer: any;
6
7
  audio: Audio;
7
8
  decoderWorker: DecoderWorker;
8
9
  stream: Stream;
@@ -67,6 +68,10 @@ export default class SoftPlayer extends BasePlayer {
67
68
  * @description 检查等待时间 (loading 等待时间)
68
69
  */
69
70
  checkLoadingTimeout(): void;
71
+ _checkLoadingTimeout: NodeJS.Timeout;
72
+ /**
73
+ * @description 清除加载超时
74
+ */
70
75
  clearCheckLoadingTimeout(): void;
71
76
  clearStatsInterval(): void;
72
77
  handleRender(): void;
@@ -4,6 +4,7 @@ export default class FetchLoader extends Emitter {
4
4
  playing: boolean;
5
5
  abortController: AbortController;
6
6
  streamRate: (size: any) => void;
7
+ _streamSuccess: boolean;
7
8
  destroy(): void;
8
9
  /**
9
10
  *
@@ -14,10 +14,8 @@
14
14
  * @property {(0 | 1 | 2)=} scaleMode 设置渲染模式, 默认 1 等比缩放,最大边填充, 取值 0 | 1 | 2。
15
15
  * @property {boolean=} debug 是否开启控制台调试打印。默认 false
16
16
  * @property {number=} timeout 设置超时时长, 单位秒, 在连接成功之前(loading)和播放中途(heart),如果超过设定时长无数据返回,则回调timeout事件。默认 10
17
- * @property {number=} heartTimeout 设置超时时长, 单位秒, 播放中途,如果超过设定时长无数据返回,则回调timeout事件。默认 5
18
- * @property {number=} heartTimeoutReplayTimes `heartTimeoutReplay` 重试次数。默认 3
19
- * @property {number=} loadingTimeout 设置超时时长, 单位秒。默认 10
20
- * @property {boolean=} loadingTimeoutReplay 是否开启loading超时之后自动再播放, 默认 true
17
+ * @property {number=} loadingTimeoutDelay 请求失败, 延时重试时长,单位秒。默认 3
18
+ * @property {number=} loadingTimeoutReplayTimes 重试次数。默认 5, -1 不限次数
21
19
  * @property {boolean=} keepScreenOn 开启屏幕常亮,在手机浏览器上, canvas标签渲染视频并不会像video标签那样保持屏幕常。默认 false
22
20
  * @property {boolean=} isMute 是否静音,默认是关闭声音播放的。默认 true
23
21
  * @property {boolean=} useMSE 是否开启MediaSource硬解码。视频编码只支持H.264视频(Safari on iOS不支持)。默认 false
@@ -100,21 +98,13 @@ export type FlvOptions = {
100
98
  */
101
99
  timeout?: number | undefined;
102
100
  /**
103
- * 设置超时时长, 单位秒, 播放中途,如果超过设定时长无数据返回,则回调timeout事件。默认 5
101
+ * 请求失败, 延时重试时长,单位秒。默认 3
104
102
  */
105
- heartTimeout?: number | undefined;
103
+ loadingTimeoutDelay?: number | undefined;
106
104
  /**
107
- * `heartTimeoutReplay` 重试次数。默认 3
105
+ * 重试次数。默认 5, -1 不限次数
108
106
  */
109
- heartTimeoutReplayTimes?: number | undefined;
110
- /**
111
- * 设置超时时长, 单位秒。默认 10
112
- */
113
- loadingTimeout?: number | undefined;
114
- /**
115
- * 是否开启loading超时之后自动再播放, 默认 true
116
- */
117
- loadingTimeoutReplay?: boolean | undefined;
107
+ loadingTimeoutReplayTimes?: number | undefined;
118
108
  /**
119
109
  * 开启屏幕常亮,在手机浏览器上, canvas标签渲染视频并不会像video标签那样保持屏幕常。默认 false
120
110
  */