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/decoder.js +3 -3
- package/index.js +5 -5
- package/package.json +1 -1
- package/types/constant/index.d.ts +5 -9
- package/types/index.d.ts +44 -11
- package/types/player/base-player.d.ts +0 -1
- package/types/player/commonLoader.d.ts +1 -6
- package/types/player/hard-player/index.d.ts +12 -8
- package/types/player/interface.d.ts +2 -3
- package/types/player/soft-player/index.d.ts +5 -0
- package/types/stream/fetchLoader.d.ts +1 -0
- package/types/typedefs.d.ts +6 -16
package/package.json
CHANGED
|
@@ -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
|
|
24
|
-
export let
|
|
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
|
-
|
|
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 {
|
|
114
|
+
* @returns {Promise<number>} 0 成功(不代表取流成功), 1 失败
|
|
115
115
|
*/
|
|
116
|
-
switchDefinition(definition: VideoLevel):
|
|
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 {
|
|
138
|
+
* @returns {Promise<number>} 0 成功(不代表取流成功), 1 失败
|
|
131
139
|
*/
|
|
132
|
-
switchPlaybackRate(rate: number):
|
|
140
|
+
switchPlaybackRate(rate: number): Promise<number>;
|
|
133
141
|
/**
|
|
134
142
|
* @description 获取回放地址
|
|
135
143
|
* @private
|
|
136
144
|
* @returns {Promise<string>} // 空字符表示失败
|
|
137
145
|
*/
|
|
138
|
-
private
|
|
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()
|
|
@@ -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
|
-
|
|
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;
|
package/types/typedefs.d.ts
CHANGED
|
@@ -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=}
|
|
18
|
-
* @property {number=}
|
|
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
|
-
*
|
|
101
|
+
* 请求失败, 延时重试时长,单位秒。默认 3
|
|
104
102
|
*/
|
|
105
|
-
|
|
103
|
+
loadingTimeoutDelay?: number | undefined;
|
|
106
104
|
/**
|
|
107
|
-
*
|
|
105
|
+
* 重试次数。默认 5, -1 不限次数
|
|
108
106
|
*/
|
|
109
|
-
|
|
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
|
*/
|