ezuikit-flv 1.0.0-alpha.0

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +83 -0
  3. package/decoder.js +6 -0
  4. package/decoder.wasm +0 -0
  5. package/index.js +15 -0
  6. package/package.json +20 -0
  7. package/types/audio/audioContextLoader.d.ts +42 -0
  8. package/types/audio/index.d.ts +5 -0
  9. package/types/constant/index.d.ts +263 -0
  10. package/types/control/index.d.ts +4 -0
  11. package/types/control/observer.d.ts +2 -0
  12. package/types/demux/commonLoader.d.ts +19 -0
  13. package/types/demux/flvLoader.d.ts +15 -0
  14. package/types/demux/index.d.ts +5 -0
  15. package/types/demux/m7sLoader.d.ts +4 -0
  16. package/types/flv-mse/flv.min.d.ts +3 -0
  17. package/types/index.d.ts +248 -0
  18. package/types/player/base-player.d.ts +46 -0
  19. package/types/player/commonLoader.d.ts +16 -0
  20. package/types/player/events.d.ts +2 -0
  21. package/types/player/hard-player/index.d.ts +95 -0
  22. package/types/player/hard-player/videoLoader.d.ts +28 -0
  23. package/types/player/index.d.ts +7 -0
  24. package/types/player/interface.d.ts +98 -0
  25. package/types/player/observer.d.ts +2 -0
  26. package/types/player/property.d.ts +2 -0
  27. package/types/player/soft-player/canvasLoader.d.ts +26 -0
  28. package/types/player/soft-player/index.d.ts +96 -0
  29. package/types/stream/fetchLoader.d.ts +16 -0
  30. package/types/stream/index.d.ts +6 -0
  31. package/types/stream/websocketLoader.d.ts +18 -0
  32. package/types/typedefs.d.ts +143 -0
  33. package/types/utils/codec-support.d.ts +2 -0
  34. package/types/utils/debug.d.ts +6 -0
  35. package/types/utils/emitter.d.ts +7 -0
  36. package/types/utils/events.d.ts +7 -0
  37. package/types/utils/file-save.d.ts +2 -0
  38. package/types/utils/index.d.ts +70 -0
  39. package/types/utils/monitor.d.ts +22 -0
  40. package/types/utils/noSleep.d.ts +12 -0
  41. package/types/utils/parse-url.d.ts +5 -0
  42. package/types/utils/webgl.d.ts +5 -0
  43. package/types/worker/index.d.ts +13 -0
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "ezuikit-flv",
3
+ "version": "1.0.0-alpha.0",
4
+ "main": "./index.js",
5
+ "types": "./types",
6
+ "files": [
7
+ "CHANGELOG.md",
8
+ "decoder.js",
9
+ "decoder.wasm",
10
+ "index.js",
11
+ "package.json",
12
+ "README.md",
13
+ "types"
14
+ ],
15
+ "dependencies": {
16
+ "@ezviz/ezmonitor": "^1.0.0",
17
+ "recordrtc": "5.6.2",
18
+ "screenfull": "5.1.0"
19
+ }
20
+ }
@@ -0,0 +1,42 @@
1
+ export default class AudioContextLoader extends Emitter {
2
+ constructor(player: any);
3
+ bufferList: any[];
4
+ player: any;
5
+ scriptNode: any;
6
+ hasInitScriptNode: boolean;
7
+ audioContextChannel: any;
8
+ audioContext: any;
9
+ gainNode: any;
10
+ audioBufferSourceNode: any;
11
+ mediaStreamAudioDestinationNode: any;
12
+ playing: boolean;
13
+ audioSyncVideoOption: {
14
+ diff: any;
15
+ };
16
+ audioInfo: {
17
+ encType: string;
18
+ channels: string;
19
+ sampleRate: string;
20
+ };
21
+ init: boolean;
22
+ hasAudio: boolean;
23
+ resetInit(): void;
24
+ destroy(): void;
25
+ updateAudioInfo(data: any): void;
26
+ get isPlaying(): boolean;
27
+ get isMute(): boolean;
28
+ get volume(): any;
29
+ get bufferSize(): number;
30
+ initScriptNode(): void;
31
+ mute(flag: any): void;
32
+ setVolume(volume: any): void;
33
+ closeAudio(): void;
34
+ audioEnabled(flag: any): void;
35
+ isStateRunning(): boolean;
36
+ isStateSuspended(): boolean;
37
+ clear(): void;
38
+ play(buffer: any, ts: any): void;
39
+ pause(): void;
40
+ resume(): void;
41
+ }
42
+ import Emitter from '../utils/emitter';
@@ -0,0 +1,5 @@
1
+ export default class Audio {
2
+ static getLoaderFactory(): typeof AudioContextLoader;
3
+ constructor(player: any);
4
+ }
5
+ import AudioContextLoader from './audioContextLoader';
@@ -0,0 +1,263 @@
1
+ export namespace PLAYER_PLAY_PROTOCOL {
2
+ let websocket: number;
3
+ let fetch: number;
4
+ let webrtc: number;
5
+ }
6
+ export namespace DEMUX_TYPE {
7
+ let flv: string;
8
+ let m7s: string;
9
+ }
10
+ export namespace FILE_SUFFIX {
11
+ let mp4: string;
12
+ let webm: string;
13
+ }
14
+ export const MEDIA_SOURCE_UPDATE_END_TIMEOUT: number;
15
+ export namespace DEFAULT_PLAYER_OPTIONS {
16
+ export let videoBuffer: number;
17
+ export let videoBufferDelay: number;
18
+ export let scaleMode: number;
19
+ export let debug: boolean;
20
+ export let loadingTimeout: number;
21
+ export let heartTimeout: number;
22
+ export let timeout: number;
23
+ export let loadingTimeoutReplay: boolean;
24
+ export let heartTimeoutReplay: boolean;
25
+ export let loadingTimeoutReplayTimes: number;
26
+ export let heartTimeoutReplayTimes: number;
27
+ export let keepScreenOn: boolean;
28
+ export let isNotMute: boolean;
29
+ export let hasAudio: boolean;
30
+ export let hasVideo: boolean;
31
+ export let decoder: string;
32
+ export let url: string;
33
+ export let rotate: number;
34
+ export let forceNoOffscreen: boolean;
35
+ import protocol = PLAYER_PLAY_PROTOCOL.fetch;
36
+ export { protocol };
37
+ import demuxType = DEMUX_TYPE.flv;
38
+ export { demuxType };
39
+ export let useMSE: boolean;
40
+ export let autoWasm: boolean;
41
+ export let wasmDecodeErrorReplay: boolean;
42
+ export let openWebglAlignment: boolean;
43
+ export let wasmDecodeAudioSyncVideo: boolean;
44
+ export let useWebFullScreen: boolean;
45
+ }
46
+ export namespace WORKER_CMD_TYPE {
47
+ let init: string;
48
+ let initVideo: string;
49
+ let render: string;
50
+ let playAudio: string;
51
+ let initAudio: string;
52
+ let kBps: string;
53
+ let decode: string;
54
+ let audioCode: string;
55
+ let videoCode: string;
56
+ let wasmError: string;
57
+ }
58
+ export namespace WASM_ERROR {
59
+ let invalidNalUnitSize: string;
60
+ }
61
+ export namespace MEDIA_TYPE {
62
+ let audio: number;
63
+ let video: number;
64
+ }
65
+ export namespace FLV_MEDIA_TYPE {
66
+ let audio_1: number;
67
+ export { audio_1 as audio };
68
+ let video_1: number;
69
+ export { video_1 as video };
70
+ }
71
+ export namespace WORKER_SEND_TYPE {
72
+ let init_1: string;
73
+ export { init_1 as init };
74
+ let decode_1: string;
75
+ export { decode_1 as decode };
76
+ export let audioDecode: string;
77
+ export let videoDecode: string;
78
+ export let close: string;
79
+ export let updateConfig: string;
80
+ }
81
+ export namespace EVENTS {
82
+ export let fullscreen: string;
83
+ export let webFullscreen: string;
84
+ export let decoderWorkerInit: string;
85
+ export let play: string;
86
+ export let playing: string;
87
+ export let pause: string;
88
+ export let mute: string;
89
+ export let load: string;
90
+ export let loading: string;
91
+ export let videoInfo: string;
92
+ export let timeUpdate: string;
93
+ export let audioInfo: string;
94
+ export let log: string;
95
+ export let error: string;
96
+ let kBps_1: string;
97
+ export { kBps_1 as kBps };
98
+ let timeout_1: string;
99
+ export { timeout_1 as timeout };
100
+ export let delayTimeout: string;
101
+ let loadingTimeout_1: string;
102
+ export { loadingTimeout_1 as loadingTimeout };
103
+ export let stats: string;
104
+ export let performance: string;
105
+ export let buffer: string;
106
+ export let videoFrame: string;
107
+ export let start: string;
108
+ export let metadata: string;
109
+ export let resize: string;
110
+ export let streamEnd: string;
111
+ export let streamSuccess: string;
112
+ export let streamMessage: string;
113
+ export let streamError: string;
114
+ export let volumechange: string;
115
+ export let destroy: string;
116
+ export let mseSourceOpen: string;
117
+ export let mseSourceClose: string;
118
+ export let mseSourceBufferError: string;
119
+ export let mseSourceBufferBusy: string;
120
+ export let mseSourceBufferFull: string;
121
+ export let videoWaiting: string;
122
+ export let videoTimeUpdate: string;
123
+ export let videoSyncAudio: string;
124
+ export let playToRenderTimes: string;
125
+ }
126
+ export namespace FLV_EVENTS {
127
+ import load_1 = EVENTS.load;
128
+ export { load_1 as load };
129
+ import timeUpdate_1 = EVENTS.timeUpdate;
130
+ export { timeUpdate_1 as timeUpdate };
131
+ import videoInfo_1 = EVENTS.videoInfo;
132
+ export { videoInfo_1 as videoInfo };
133
+ import audioInfo_1 = EVENTS.audioInfo;
134
+ export { audioInfo_1 as audioInfo };
135
+ import error_1 = EVENTS.error;
136
+ export { error_1 as error };
137
+ import kBps_2 = EVENTS.kBps;
138
+ export { kBps_2 as kBps };
139
+ import log_1 = EVENTS.log;
140
+ export { log_1 as log };
141
+ import start_1 = EVENTS.start;
142
+ export { start_1 as start };
143
+ import timeout_2 = EVENTS.timeout;
144
+ export { timeout_2 as timeout };
145
+ import loadingTimeout_2 = EVENTS.loadingTimeout;
146
+ export { loadingTimeout_2 as loadingTimeout };
147
+ import delayTimeout_1 = EVENTS.delayTimeout;
148
+ export { delayTimeout_1 as delayTimeout };
149
+ let fullscreen_1: string;
150
+ export { fullscreen_1 as fullscreen };
151
+ import webFullscreen_1 = EVENTS.webFullscreen;
152
+ export { webFullscreen_1 as webFullscreen };
153
+ import play_1 = EVENTS.play;
154
+ export { play_1 as play };
155
+ import pause_1 = EVENTS.pause;
156
+ export { pause_1 as pause };
157
+ import mute_1 = EVENTS.mute;
158
+ export { mute_1 as mute };
159
+ import stats_1 = EVENTS.stats;
160
+ export { stats_1 as stats };
161
+ import volumechange_1 = EVENTS.volumechange;
162
+ export { volumechange_1 as volumechange };
163
+ import performance_1 = EVENTS.performance;
164
+ export { performance_1 as performance };
165
+ import playToRenderTimes_1 = EVENTS.playToRenderTimes;
166
+ export { playToRenderTimes_1 as playToRenderTimes };
167
+ }
168
+ export namespace EVENTS_ERROR {
169
+ export let playError: string;
170
+ export let fetchError: string;
171
+ export let websocketError: string;
172
+ export let webcodecsH265NotSupport: string;
173
+ export let webcodecsDecodeError: string;
174
+ export let webcodecsWidthOrHeightChange: string;
175
+ export let mediaSourceH265NotSupport: string;
176
+ import mediaSourceFull = EVENTS.mseSourceBufferFull;
177
+ export { mediaSourceFull };
178
+ import mseSourceBufferError_1 = EVENTS.mseSourceBufferError;
179
+ export { mseSourceBufferError_1 as mseSourceBufferError };
180
+ export let mediaSourceAppendBufferError: string;
181
+ export let mediaSourceBufferListLarge: string;
182
+ export let mediaSourceAppendBufferEndTimeout: string;
183
+ export let wasmDecodeError: string;
184
+ export let webglAlignmentError: string;
185
+ }
186
+ export namespace WEBSOCKET_STATUS {
187
+ export let notConnect: string;
188
+ export let open: string;
189
+ let close_1: string;
190
+ export { close_1 as close };
191
+ let error_2: string;
192
+ export { error_2 as error };
193
+ }
194
+ export namespace BUFFER_STATUS {
195
+ let empty: string;
196
+ let buffering: string;
197
+ let full: string;
198
+ }
199
+ export namespace SCREENSHOT_TYPE {
200
+ let download: string;
201
+ let base64: string;
202
+ let blob: string;
203
+ }
204
+ export const VIDEO_ENC_TYPE: {
205
+ 7: string;
206
+ 12: string;
207
+ };
208
+ export namespace VIDEO_ENC_CODE {
209
+ let h264: number;
210
+ let h265: number;
211
+ }
212
+ export const AUDIO_ENC_TYPE: {
213
+ 10: string;
214
+ 7: string;
215
+ 8: string;
216
+ };
217
+ export namespace H265_NAL_TYPE {
218
+ let vps: number;
219
+ let sps: number;
220
+ let pps: number;
221
+ }
222
+ export const CONTROL_HEIGHT: 38;
223
+ export namespace SCALE_MODE_TYPE {
224
+ let full_1: number;
225
+ export { full_1 as full };
226
+ export let auto: number;
227
+ export let fullAuto: number;
228
+ }
229
+ export namespace CANVAS_RENDER_TYPE {
230
+ let webcodecs: string;
231
+ let webgl: string;
232
+ let offscreen: string;
233
+ }
234
+ export namespace ENCODED_VIDEO_TYPE {
235
+ let key: string;
236
+ let delta: string;
237
+ }
238
+ export namespace MP4_CODECS {
239
+ let avc: string;
240
+ let hev: string;
241
+ }
242
+ export namespace MEDIA_SOURCE_STATE {
243
+ export let ended: string;
244
+ let open_1: string;
245
+ export { open_1 as open };
246
+ export let closed: string;
247
+ }
248
+ export const FRAG_DURATION: number;
249
+ export const AUDIO_SYNC_VIDEO_DIFF: 1000;
250
+ export namespace HOT_KEY {
251
+ let esc: number;
252
+ let arrowUp: number;
253
+ let arrowDown: number;
254
+ }
255
+ export namespace WCS_ERROR {
256
+ let keyframeIsRequiredError: string;
257
+ let canNotDecodeClosedCodec: string;
258
+ }
259
+ export namespace FETCH_ERROR {
260
+ let abortError1: string;
261
+ let abortError2: string;
262
+ let abort: string;
263
+ }
@@ -0,0 +1,4 @@
1
+ export default class Control {
2
+ constructor(player: any);
3
+ player: any;
4
+ }
@@ -0,0 +1,2 @@
1
+ declare function _default(player: any, control: any): void;
2
+ export default _default;
@@ -0,0 +1,19 @@
1
+ export default class CommonLoader extends Emitter {
2
+ constructor(player: any);
3
+ player: any;
4
+ stopId: NodeJS.Timeout;
5
+ firstTimestamp: any;
6
+ startTimestamp: number;
7
+ delay: number;
8
+ bufferList: any[];
9
+ dropping: boolean;
10
+ destroy(): void;
11
+ getDelay(timestamp: any): number;
12
+ resetDelay(): void;
13
+ initInterval(): void;
14
+ _doDecode(payload: any, type: any, ts: any, isIFrame: any, cts: any): void;
15
+ _doDecoderDecode(data: any): void;
16
+ pushBuffer(payload: any, options: any): void;
17
+ close(): void;
18
+ }
19
+ import Emitter from '../utils/emitter';
@@ -0,0 +1,15 @@
1
+ export default class FlvLoader extends CommonLoader {
2
+ input: Generator<number, void, unknown>;
3
+ flvDemux: (value: any) => void;
4
+ /**
5
+ * @param {Uint8Array} data
6
+ */
7
+ dispatch(data: Uint8Array): void;
8
+ _inputFlv(): Generator<number, void, unknown>;
9
+ /**
10
+ * @param {Generator<number, void, unknown>} input 数据片段
11
+ * @returns
12
+ */
13
+ dispatchFlvData(input: Generator<number, void, unknown>): (value: any) => void;
14
+ }
15
+ import CommonLoader from './commonLoader';
@@ -0,0 +1,5 @@
1
+ export default class Demux {
2
+ static getLoaderFactory(type: any): typeof M7sLoader;
3
+ constructor(player: any);
4
+ }
5
+ import M7sLoader from './m7sLoader';
@@ -0,0 +1,4 @@
1
+ export default class M7sLoader extends CommonLoader {
2
+ dispatch(data: any): void;
3
+ }
4
+ import CommonLoader from './commonLoader';
@@ -0,0 +1,3 @@
1
+ declare const _exports: any;
2
+ export = _exports;
3
+ export const mpegts: any;
@@ -0,0 +1,248 @@
1
+ export default EzuikitFlv;
2
+ /**
3
+ * @classdesc EzuikitFlv.js 播放flv直播流, 支持播放h264/h265的直播视频流
4
+ * @example
5
+ * const flv = new EzuikitFlv({container: "EleId"})
6
+ */
7
+ declare class EzuikitFlv extends Emitter {
8
+ /**
9
+ * @description ERROR
10
+ * @static
11
+ * @member
12
+ * @example
13
+ * EzuikitFlv.ERROR.playError
14
+ */
15
+ static ERROR: {
16
+ playError: string;
17
+ fetchError: string;
18
+ websocketError: string;
19
+ webcodecsH265NotSupport: string;
20
+ webcodecsDecodeError: string;
21
+ webcodecsWidthOrHeightChange: string; /**
22
+ * @description 设置音量
23
+ * @param {number} value 音量 0~1
24
+ * @returns {void}
25
+ * @example
26
+ * flv.setVolume(0.5)
27
+ */
28
+ mediaSourceH265NotSupport: string;
29
+ mediaSourceFull: string;
30
+ mseSourceBufferError: string;
31
+ mediaSourceAppendBufferError: string;
32
+ mediaSourceBufferListLarge: string;
33
+ mediaSourceAppendBufferEndTimeout: string;
34
+ wasmDecodeError: string;
35
+ webglAlignmentError: string;
36
+ };
37
+ /** */
38
+ static TIMEOUT: {
39
+ loadingTimeout: string;
40
+ delayTimeout: string;
41
+ };
42
+ /**
43
+ * @constructor
44
+ * @param {FlvOptions} options
45
+ */
46
+ constructor(options: FlvOptions);
47
+ _opt: FlvOptions;
48
+ $container: any;
49
+ _loadingTimeoutReplayTimes: number;
50
+ _heartTimeoutReplayTimes: number;
51
+ events: Events;
52
+ /**
53
+ * @description 销毁
54
+ * @example
55
+ * flv.destroy()
56
+ */
57
+ destroy(): void;
58
+ player: Player;
59
+ /**
60
+ * @description 初始化播放
61
+ * @private
62
+ * @param {string | HTMLElement} $container
63
+ * @param {FlvOptions} options
64
+ * @return {void}
65
+ */
66
+ private _initPlayer;
67
+ /**
68
+ * @description 重置播放器
69
+ * @private
70
+ * @param {FlvOptions} options
71
+ */
72
+ private _resetPlayer;
73
+ /**
74
+ * @description 绑定事件
75
+ * @private
76
+ */
77
+ private _bindEvents;
78
+ /**
79
+ * @description 是否开启控制台调试打印
80
+ * @param {boolean} value true: 开启, false: 关闭
81
+ * @returns {void}
82
+ * @example
83
+ * flv.setDebug(false)
84
+ */
85
+ setDebug(value: boolean): void;
86
+ /**
87
+ * @description 关闭声音
88
+ * @returns {void}
89
+ * @example
90
+ * flv.closeSound()
91
+ */
92
+ closeSound(): void;
93
+ /**
94
+ * @description 开启声音 默认音量 0.5
95
+ * @returns {void}
96
+ * @example
97
+ * flv.openSound() //
98
+ */
99
+ openSound(): void;
100
+ /**
101
+ * @description 设置音量
102
+ * @param {number} value 音量 0~1
103
+ * @returns {void}
104
+ * @example
105
+ * flv.setVolume(0.5)
106
+ */
107
+ setVolume(value: number): void;
108
+ /**
109
+ * @description 获取音量, 音量 0~1
110
+ * @returns {number}
111
+ * @example
112
+ * flv.getVolume()
113
+ */
114
+ getVolume(): number;
115
+ /**
116
+ * @description 音频回复
117
+ * @returns {void}
118
+ * @example
119
+ * flv.audioResume()
120
+ */
121
+ audioResume(): void;
122
+ /**
123
+ * @description 设置超时时长, 单位秒 在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件
124
+ * @private
125
+ * @param {number} time 设置超时时长, 单位秒
126
+ * @returns {void}
127
+ * @example
128
+ * flv.setTimeout(3)
129
+ */
130
+ private setTimeout;
131
+ /**
132
+ * @description 设置渲染的模式 (video 不支持)
133
+ * @private
134
+ * @param {0 | 1 | 2} type 0: 完全填充canvas区域; 1: 等比缩放, 最大边填充 ; 2: 等比缩放后,最小边填充,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全
135
+ * @returns {Promise}
136
+ * @example
137
+ * flv.setScaleMode(1)
138
+ */
139
+ private setScaleMode;
140
+ /**
141
+ * @description 暂停
142
+ * @returns {Promise<unknown>}
143
+ * @example
144
+ * flv.pause()
145
+ */
146
+ pause(): Promise<unknown>;
147
+ /**
148
+ * @description 关闭视频,不释放底层资源
149
+ * @private
150
+ * @returns {void}
151
+ * @example
152
+ * flv.close()
153
+ */
154
+ private close;
155
+ /**
156
+ * @description 清理画布为黑色背景
157
+ * @private
158
+ * @returns {void}
159
+ * @example
160
+ * flv.clearView()
161
+ */
162
+ private clearView;
163
+ /**
164
+ * @description 播放
165
+ * @param {object=} options
166
+ * @returns {Promise}
167
+ * @example
168
+ * flv.play()
169
+ */
170
+ play(options?: object | undefined): Promise<any>;
171
+ /**
172
+ * @description 播放
173
+ * @private
174
+ * @param {string} url
175
+ * @param {object=} options
176
+ * @returns {Promise<unknown>}
177
+ */
178
+ private _play;
179
+ /**
180
+ * @description 重新调整视图大小
181
+ * @private
182
+ * @example
183
+ * flv.resize()
184
+ */
185
+ private resize;
186
+ /**
187
+ * @description 设置最大缓冲时长,单位秒,播放器会自动消除延迟。
188
+ * @private
189
+ * @param {number} time 大缓冲时长 s
190
+ * @example
191
+ * flv.setBufferTime(3)
192
+ */
193
+ private setBufferTime;
194
+ /**
195
+ * @description 设置旋转角度,支持,0(默认), 90, 180, 270 四个值。
196
+ * @returns {Promise}
197
+ * @param {number} deg
198
+ * @example
199
+ * flv.setRotate(90) // 旋转90度
200
+ */
201
+ setRotate(deg: number): Promise<any>;
202
+ /**
203
+ * @description 返回是否加载完毕
204
+ * @private
205
+ * @returns {boolean}
206
+ */
207
+ private hasLoaded;
208
+ /**
209
+ * @description 开启屏幕常亮,在手机浏览器上
210
+ * @returns {void}
211
+ * @example
212
+ * flv.setKeepScreenOn()
213
+ */
214
+ setKeepScreenOn(): void;
215
+ /**
216
+ * @description 全屏(取消全屏)播放视频
217
+ * @private
218
+ * @param {Boolean} flag
219
+ */
220
+ private _setFullscreen;
221
+ /**
222
+ * @description 全屏播放视频
223
+ * @example
224
+ * flv.fullScreen() // 全屏
225
+ */
226
+ fullScreen(): void;
227
+ /**
228
+ * @description 取消全屏播放视频
229
+ * @example
230
+ * flv.cancelFullScreen() // 全屏
231
+ */
232
+ cancelFullScreen(): void;
233
+ /**
234
+ * @description 获取播放器的状态
235
+ * @returns {PlayerState} 播放器的状态
236
+ * @example
237
+ * flv.getState()
238
+ */
239
+ getState(): PlayerState;
240
+ /**
241
+ * @description 获取版本
242
+ * @returns {string}
243
+ */
244
+ getVersion(): string;
245
+ }
246
+ import Emitter from './utils/emitter';
247
+ import Events from './utils/events';
248
+ import Player from './player';
@@ -0,0 +1,46 @@
1
+ export default class BasePlayer extends Emitter {
2
+ constructor(container: any, options: any, Video: any);
3
+ $container: any;
4
+ _opt: any;
5
+ debug: Debug;
6
+ _loading: boolean;
7
+ _playing: boolean;
8
+ _hasLoaded: boolean;
9
+ _checkHeartTimeout: any;
10
+ _checkLoadingTimeout: any;
11
+ _checkStatsInterval: any;
12
+ _startBpsTime: any;
13
+ _isPlayingBeforePageHidden: boolean;
14
+ _stats: {
15
+ buf: number;
16
+ fps: number;
17
+ abps: number;
18
+ vbps: number;
19
+ ts: number;
20
+ };
21
+ _times: {
22
+ playInitStart: string;
23
+ playStart: string;
24
+ streamStart: string;
25
+ streamResponse: string;
26
+ demuxStart: string;
27
+ decodeStart: string;
28
+ videoStart: string;
29
+ playTimestamp: string;
30
+ streamTimestamp: string;
31
+ streamResponseTimestamp: string;
32
+ demuxTimestamp: string;
33
+ decodeTimestamp: string;
34
+ videoTimestamp: string;
35
+ allTimestamp: string;
36
+ };
37
+ _videoTimestamp: number;
38
+ _audioTimestamp: number;
39
+ events: Events;
40
+ video: any;
41
+ control: Control;
42
+ }
43
+ import Emitter from '../utils/emitter';
44
+ import Debug from '../utils/debug';
45
+ import Events from '../utils/events';
46
+ import Control from '../control';
@@ -0,0 +1,16 @@
1
+ export default class CommonLoader extends Emitter {
2
+ init: boolean;
3
+ resetInit(): void;
4
+ videoInfo: {
5
+ width: string;
6
+ height: string;
7
+ encType: string;
8
+ encTypeCode: string;
9
+ };
10
+ destroy(): void;
11
+ updateVideoInfo(data: any): void;
12
+ play(): void;
13
+ pause(): void;
14
+ clearView(): void;
15
+ }
16
+ import Emitter from '../utils/emitter';