@volcengine/react-native-live-pull 1.0.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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/android/build.gradle +93 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +9 -0
  6. package/android/src/main/AndroidManifestNew.xml +8 -0
  7. package/android/src/main/java/com/volcengine/velive/rn/pull/NativeVariableManager.java +15 -0
  8. package/android/src/main/java/com/volcengine/velive/rn/pull/VolcLiveModule.java +108 -0
  9. package/android/src/main/java/com/volcengine/velive/rn/pull/VolcLiveModuleSpec.java +17 -0
  10. package/android/src/main/java/com/volcengine/velive/rn/pull/VolcLivePackage.java +27 -0
  11. package/android/src/main/java/com/volcengine/velive/rn/pull/VolcView.java +32 -0
  12. package/android/src/main/java/com/volcengine/velive/rn/pull/VolcViewManager.java +87 -0
  13. package/android/src/main/java/com/volcengine/velive/rn/pull/autogen/MethodSignature.java +129 -0
  14. package/ios/VeLivePullSDK.h +24 -0
  15. package/ios/VeLivePullSDK.m +91 -0
  16. package/ios/VeLivePullView.h +25 -0
  17. package/ios/VeLivePullView.m +74 -0
  18. package/ios/VeLivePullViewManager.m +59 -0
  19. package/lib/commonjs/index.js +10697 -0
  20. package/lib/module/index.js +10684 -0
  21. package/lib/typescript/codegen/android/api.d.ts +260 -0
  22. package/lib/typescript/codegen/android/callback.d.ts +152 -0
  23. package/lib/typescript/codegen/android/errorcode.d.ts +99 -0
  24. package/lib/typescript/codegen/android/index.d.ts +5 -0
  25. package/lib/typescript/codegen/android/keytype.d.ts +507 -0
  26. package/lib/typescript/codegen/android/types.d.ts +30 -0
  27. package/lib/typescript/codegen/ios/api.d.ts +293 -0
  28. package/lib/typescript/codegen/ios/callback.d.ts +163 -0
  29. package/lib/typescript/codegen/ios/errorcode.d.ts +106 -0
  30. package/lib/typescript/codegen/ios/index.d.ts +5 -0
  31. package/lib/typescript/codegen/ios/keytype.d.ts +515 -0
  32. package/lib/typescript/codegen/ios/types.d.ts +35 -0
  33. package/lib/typescript/codegen/pack/api.d.ts +389 -0
  34. package/lib/typescript/codegen/pack/callback.d.ts +217 -0
  35. package/lib/typescript/codegen/pack/errorcode.d.ts +150 -0
  36. package/lib/typescript/codegen/pack/index.d.ts +5 -0
  37. package/lib/typescript/codegen/pack/keytype.d.ts +933 -0
  38. package/lib/typescript/codegen/pack/types.d.ts +1 -0
  39. package/lib/typescript/component.d.ts +8 -0
  40. package/lib/typescript/core/api.d.ts +1 -0
  41. package/lib/typescript/core/callback.d.ts +1 -0
  42. package/lib/typescript/core/env.d.ts +36 -0
  43. package/lib/typescript/core/errorcode.d.ts +1 -0
  44. package/lib/typescript/core/index.d.ts +6 -0
  45. package/lib/typescript/core/keytype.d.ts +1 -0
  46. package/lib/typescript/core/player.d.ts +14 -0
  47. package/lib/typescript/index.d.ts +2 -0
  48. package/lib/typescript/platforms/android/extends.d.ts +39 -0
  49. package/lib/typescript/platforms/ios/extends.d.ts +41 -0
  50. package/lib/typescript/runtime/index.d.ts +1 -0
  51. package/package.json +32 -0
  52. package/react-native-velive-pull.podspec +45 -0
@@ -0,0 +1,389 @@
1
+ import { VeLivePlayerConfiguration, VeLivePlayerFillMode, VeLivePlayerStreamData, VeLivePlayerResolution, VeLivePlayerPixelFormat, VeLivePlayerVideoBufferType, VeLivePlayerRotation, VeLivePlayerMirror, VeLivePlayerLogLevel } from './keytype';
2
+ import { VeLivePlayerObserver } from './callback';
3
+ import { ApplicationContext } from '../../platforms/android/extends';
4
+ import * as $p_a from '../android/index';
5
+ import * as $p_i from '../ios/index';
6
+ /** {zh}
7
+ * @detail api
8
+ * @brief 直播播放器。
9
+ */
10
+
11
+ export declare class VeLivePlayer {
12
+ /** {zh}
13
+ * @detail api
14
+ * @brief 获取播放器 SDK 的版本号。
15
+ * @return <br>
16
+ * 播放器 SDK 版本号。
17
+ * @order 4
18
+ */
19
+
20
+ static getVersion(): string;
21
+ /** {zh}
22
+ * @detail api
23
+ * @brief 设置打印的日志级别。
24
+ * @order 5
25
+ * @param logLevel 日志级别,详情请参见 [VeLivePlayerLogLevel](188115#VeLivePlayerLogLevel) 。
26
+ */
27
+
28
+ static setLogLevel(logLevel: VeLivePlayerLogLevel): void;
29
+ /** {zh}
30
+ * @platform ios
31
+ * @brief 设置域名和服务器的 IP 地址映射关系。
32
+ * @param hostIpMap 域名和服务器 IP 地址的映射关系列表。其中 `Map` 的 Key 是域名,Value 是 `List` 类型,表示该域名对应的服务器 IP 地址列表。
33
+ */
34
+
35
+ static ios_setHttpDNSHostIP(hostIpMap: Object): void;
36
+ constructor(context: ApplicationContext);
37
+ protected _instance: any;
38
+ protected __init(...args: any[]): void;
39
+ protected __new_instance(...args: any[]): $p_a.VeLivePlayer | $p_i.TVLManager;
40
+ /** {zh}
41
+ * @platform ios
42
+ * @detail keytype
43
+ * @brief 播放器的回调事件监听器。
44
+ */
45
+
46
+ get ios_observer(): $p_i.id<$p_i.VeLivePlayerObserver>;
47
+ set ios_observer(value: $p_i.id<$p_i.VeLivePlayerObserver>);
48
+ /** {zh}
49
+ * @platform ios
50
+ * @detail keytype
51
+ * @brief 获取播放器内部用于渲染视频画面的视图 view,调用本方法将 playerView 添加到应用的视图层级中,实现视频内容显示。
52
+ */
53
+
54
+ get ios_playerView(): $p_i.UIView;
55
+ set ios_playerView(value: $p_i.UIView);
56
+ /** {zh}
57
+ * @detail api
58
+ * @brief 初始化播放器,用于设置是否开启 SEI 消息、是否开启硬件解码和是否开启本地 DNS 预解析等配置信息。
59
+ * @notes <br>需要在调用 [play](#VeLivePlayer-play) 开始播放之前,调用本方法进行播放器的初始化。
60
+ * @order 1
61
+ * @param config 播放器配置信息,详情请参见 {@link #VeLivePlayerConfiguration VeLivePlayerConfiguration}。
62
+ */
63
+
64
+ setConfig(config: VeLivePlayerConfiguration): void;
65
+ /** {zh}
66
+ * @detail api
67
+ * @brief 设置播放器回调,用于监听播放器 VeLivePlayer 的播放错误、播放状态、音视频首帧渲染状态和清晰度档位信息等回调事件。
68
+ * @notes <br>需要在调用 [play](#VeLivePlayer-play) 开始播放之前,调用本方法设置回调。
69
+ * @order 2
70
+ * @param observer 播放器的事件回调对象。详情请参见 {@link #VeLivePlayerObserver VeLivePlayerObserver}。
71
+ */
72
+
73
+ setObserver(observer: VeLivePlayerObserver): void;
74
+ /** {zh}
75
+ * @detail api
76
+ * @brief 设置播放器画面的填充模式。
77
+ * @notes <br>
78
+ * - 如果用于起播设置,需要在调用 [play](#VeLivePlayer-play) 开始播放之前,调用本方法设置视频的填充模式。
79
+ * - 如果用于调节填充模式,可以在播放过程中调用本方法动态调节视频的填充模式。
80
+ * @order 3
81
+ * @param fillMode 设置 SurfaceView 的填充模式,默认值为 `VeLivePlayerFillModeAspectFill`,详情请参见 [VeLivePlayerFillMode](188115#VeLivePlayerFillMode)。
82
+ */
83
+
84
+ setRenderFillMode(fillMode: VeLivePlayerFillMode): Promise<void>;
85
+ /** {zh}
86
+ * @platform android
87
+ * @detail api
88
+ * @brief 使用 SurfaceView 播放视频时,通过设置 SurfaceHolder 对象完成视频图像的渲染和播放。
89
+ * @notes <br>
90
+ * 如果同时调用 setSurfaceHolder 和 {@link #setSurface setSurface} 设置视频播放画面的 Surface,播放器会优先使用 surfaceHolder 的配置。
91
+ * @order 6
92
+ * @param surfaceHolder SurfaceHolder 对象。
93
+ */
94
+
95
+ android_setSurfaceHolder(surfaceHolder: any): void;
96
+ /** {zh}
97
+ * @platform android
98
+ * @detail api
99
+ * @brief 使用 SurfaceView 或 TextureView 播放视频时,通过设置 Surface 对象完成视频图像的渲染和播放。
100
+ * @notes <br>
101
+ * 如果同时调用 {@link #setSurfaceHolder setSurfaceHolder} 和 setSurface 设置视频播放画面的 Surface,播放器会优先使用 surfaceHolder 的配置。
102
+ * @order 7
103
+ * @param surface surface 对象的类型。
104
+ */
105
+
106
+ android_setSurface(surface: any): void;
107
+ /** {zh}
108
+ * @detail api
109
+ * @brief 设置单个直播播放地址。
110
+ * @notes <br>
111
+ * 需要在调用 {@link #play play} 开始播放之前,调用本方法设置单个直播播放地址。
112
+ * @order 8
113
+ * @param url 直播播放地址。
114
+ */
115
+
116
+ setPlayUrl(url: string): void;
117
+ /** {zh}
118
+ * @detail api
119
+ * @brief 多路流信息配置。例如,您需要使用 ABR、手动切档和主备流等依赖多路流的功能,可以调用本方法进行配置。
120
+ * @notes <br>
121
+ * 需要在调用 {@link #play play} 开始播放之前,调用本方法设置多路流信息。
122
+ * @order 8
123
+ * @param streamData 多路流信息配置,详情请参见 [VeLivePlayerStreamData](188115#VeLivePlayerStreamData) 。
124
+ */
125
+
126
+ setPlayStreamData(streamData: VeLivePlayerStreamData): void;
127
+ /** {zh}
128
+ * @detail api
129
+ * @brief 开始/恢复播放。
130
+ * @notes <br>
131
+ * 调用本方法,在播放器完成拉流准备和首帧渲染播放后,都会触发 {@link #VeLivePlayerObserver#onPlayerStatusUpdate onPlayerStatusUpdate} 播放器状态回调。
132
+ * @order 8
133
+ */
134
+
135
+ play(): Promise<void>;
136
+ /** {zh}
137
+ * @detail api
138
+ * @brief 暂停播放。
139
+ * @notes <br>
140
+ * 调用本方法暂停播放后,会触发 {@link #VeLivePlayerObserver#onPlayerStatusUpdate onPlayerStatusUpdate} 播放器状态回调。
141
+ * @order 8
142
+ */
143
+
144
+ pause(): Promise<void>;
145
+ /** {zh}
146
+ * @detail api
147
+ * @brief 停止播放,不销毁播放器。
148
+ * @notes <br>
149
+ * 调用本方法停止播放后,会触发 {@link #VeLivePlayerObserver#onPlayerStatusUpdate onPlayerStatusUpdate} 播放器状态回调。
150
+ * @order 8
151
+ */
152
+
153
+ stop(): Promise<void>;
154
+ /** {zh}
155
+ * @detail api
156
+ * @brief 停止播放,并销毁播放器。
157
+ * @order 8
158
+ */
159
+
160
+ destroy(): void;
161
+ /** {zh}
162
+ * @detail api
163
+ * @brief 切换播放的清晰度档位。
164
+ * @notes - 需要在调用 [setPlayStreamData](#VeLivePlayer-setplaystreamdata) 设置多档位后,调用本方法切换播放器的清晰度档位。
165
+ * - 调用本方法成功切换档位后,会触发清晰度档位变化 [onResolutionSwitch](188112#VeLivePlayerObserver-onresolutionswitch) 回调。
166
+ * @return <br>
167
+ * - true:成功;
168
+ * - false:失败。
169
+ * @order 8
170
+ * @param resolution 设置清晰度的目标档位,详情请参见 [VeLivePlayerResolution](188115#VeLivePlayerResolution) 。
171
+ */
172
+
173
+ switchResolution(resolution: VeLivePlayerResolution): void;
174
+ /** {zh}
175
+ * @detail api
176
+ * @brief 检查播放器是否正在播放。
177
+ * @return 是否正在播放。
178
+ * - true:正在播放;
179
+ * - false:未播放。
180
+ * @order 8
181
+ */
182
+
183
+ isPlaying(): boolean;
184
+ /** {zh}
185
+ * @detail api
186
+ * @brief 设置播放器音量。
187
+ * @order 8
188
+ * @param volume 音量大小,默认值为 1.0。取值范围为 0.0~1.0。
189
+ */
190
+
191
+ setPlayerVolume(volume: number): void;
192
+ /** {zh}
193
+ * @detail api
194
+ * @brief 设置是否静音播放。
195
+ * @param mute 是否开启静音播放,默认值为 false。
196
+ * - true:开启;
197
+ * - false:关闭。
198
+ * @order 9
199
+ */
200
+
201
+ setMute(mute: boolean): void;
202
+ /** {zh}
203
+ * @detail api
204
+ * @brief 获取是否处于静音状态。
205
+ * @return 是否处于静音状态。
206
+ * - true:静音;
207
+ * - false:未静音。
208
+ * @order 10
209
+ */
210
+
211
+ isMute(): boolean;
212
+ /** {zh}
213
+ * @detail api
214
+ * @brief 设置域名和服务器的 IP 地址映射关系。
215
+ * @order 11
216
+ * @param hostIpMap 域名和服务器 IP 地址的映射关系列表。其中 `Map` 的 Key 是域名,Value 是 `List` 类型,表示该域名对应的服务器 IP 地址列表。
217
+ */
218
+
219
+ setUrlHostIP(hostIpMap: Record<string, Array<string>>): void;
220
+ /** {zh}
221
+ * @detail api
222
+ * @brief 设置播放器高级配置。高级配置包括离屏渲染设置、缓冲区最大时长、ABR 码率自适应算法类型等,如需了解详细信息,请联系火山引擎[技术支持](https://console.volcengine.com/workorder/create?step=3&SubProductID=P00000076&FlowKey=owVvVTNjDkRmjctcsyNW)。
223
+ * @order 12
224
+ * @param key 高级配置的参数名。
225
+ * @param value 参数对应的参数值。
226
+ */
227
+
228
+ setProperty(key: string, value: Object): void;
229
+ /** {zh}
230
+ * @detail api
231
+ * @brief 视频截图。
232
+ * @notes
233
+ * - 本方法仅在视频状态为播放时生效。
234
+ * - 调用本方法截图成功后,会触发 {@link #VeLivePlayerObserver#onSnapshotComplete onSnapshotComplete} 回调,回调消息中包含截图的 Bitmap 对象。
235
+ * @return <br>
236
+ * - 0:当前状态支持截图;
237
+ * - [VeLivePlayerErrorRefused](188113#VeLivePlayerErrorCode-veliveplayererrorrefused) :当前状态不支持截图。
238
+ * @order 13
239
+ */
240
+
241
+ snapshot(): number;
242
+ /** {zh}
243
+ * @detail api
244
+ * @brief 设置视频帧回调。
245
+ * @notes
246
+ * - 您可以在使用外部渲染的场景下调用本方法,订阅视频帧的解码数据。
247
+ * - 调用本方法后,会触发 {@link #VeLivePlayerObserver#onRenderVideoFrame onRenderVideoFrame} 回调,回调消息中包含每个视频帧的详细数据。
248
+ * - 如果您使用外部渲染,需要保证音视频同步。
249
+ * @order 14
250
+ * @param enable 是否开启视频帧回调,默认值为 false。 <br>
251
+ * - true:开启;
252
+ * - false:关闭。
253
+ * @param pixelFormat 回调的视频帧像素格式,详情请参见 [VeLivePlayerPixelFormat](188115#VeLivePlayerPixelFormat)。
254
+ * @param bufferType 回调的视频数据封装格式,详情请参见 [VeLivePlayerVideoBufferType](188115#VeLivePlayerVideoBufferType) 。
255
+ */
256
+
257
+ enableVideoFrameObserver(enable: boolean, pixelFormat: VeLivePlayerPixelFormat, bufferType: VeLivePlayerVideoBufferType): void;
258
+ /** {zh}
259
+ * @detail api
260
+ * @brief 设置音频帧回调。
261
+ * @param enable 是否开启音频帧回调,默认值为 false。
262
+ * - true:开启;
263
+ * - false:关闭。
264
+ * @param enableRendering 是否开启播放器渲染。默认值为 false。
265
+ * - true:开启;
266
+ * - false:关闭。
267
+ * @notes
268
+ * - 您可以在使用外部渲染的场景下调用本方法,订阅音频帧的解码数据。
269
+ * - 调用本方法后,会触发 {@link #VeLivePlayerObserver#onRenderAudioFrame onRenderAudioFrame} 回调,回调消息中包含每个音频帧的详细数据。
270
+ * - 如果您使用外部渲染,需要保证音视频同步。
271
+ * @order 15
272
+ */
273
+
274
+ enableAudioFrameObserver(enable: boolean, enableRendering: boolean): void;
275
+ /** {zh}
276
+ * @detail api
277
+ * @brief 设置视频顺时针旋转角度。
278
+ * @notes
279
+ * - 支持在播放前和播放中动态修改视频旋转角度。
280
+ * - 每次调用本方法,播放器都将基于图像的原始角度进行旋转。
281
+ * - 当同时使用旋转和镜像功能,播放器会先进行镜像,再进行旋转。
282
+ * @order 16
283
+ * @param rotation 视频旋转角度,默认关闭旋转,详情请参见 [VeLivePlayerRotation](188115#VeLivePlayerRotation) 。
284
+ */
285
+
286
+ setRenderRotation(rotation: VeLivePlayerRotation): Promise<void>;
287
+ /** {zh}
288
+ * @detail api
289
+ * @brief 设置视频镜像。
290
+ * @notes
291
+ * - 支持在播放前和播放中动态修改视频镜像方式。
292
+ * - 每次调用本方法,播放器都将基于原始图像进行镜像。
293
+ * - 当同时使用旋转和镜像功能,播放器会先进行镜像,再进行旋转。
294
+ * @order 17
295
+ * @param mirror 视频镜像,默认关闭镜像,详情请参见 [VeLivePlayerMirror](188115#VeLivePlayerMirror) 。
296
+ */
297
+
298
+ setRenderMirror(mirror: VeLivePlayerMirror): Promise<void>;
299
+ /** {zh}
300
+ * @detail api
301
+ * @brief 设置是否开启超分。您需要联系火山引擎[技术支持](https://console.volcengine.com/workorder/create?step=2&SubProductID=P00000076)开通超分功能后才可使用该功能。
302
+ * @notes
303
+ * - 在首帧回调后,调用该接口开启超分。
304
+ * - 支持播放中调用该接口动态开启和关闭超分。
305
+ * - 如果机型、分辨率和帧率不符合限制,将无法开启超分,并触发 {@link #VeLivePlayerObserver#onStreamFailedOpenSuperResolution onStreamFailedOpenSuperResolution} 回调。
306
+ * @order 18
307
+ * @param enable 是否开启超分。默认值为 false。
308
+ * - true:开启;
309
+ * - false:关闭。
310
+ */
311
+
312
+ setEnableSuperResolution(enable: boolean): void;
313
+ /** {zh}
314
+ * @platform android
315
+ * @brief 设置是否开启视频锐化。
316
+ * @param enable 是否开启视频锐化,默认值为 `false`。
317
+ * - true:开启;
318
+ * - false:关闭。
319
+ */
320
+
321
+ android_setEnableSharpen(enable: boolean): void;
322
+ /** {zh}
323
+ * @platform ios
324
+ * @brief 初始化特定类型的播放器。
325
+ * @param type 播放器类型,详情请参见 [VeLivePlayerType](188118#VeLivePlayerType)。
326
+ */
327
+
328
+ ios_initWithType(type: VeLivePlayerType): this;
329
+ /** {zh}
330
+ * @platform ios
331
+ * @hidden (iOS)
332
+ * @brief 预创建播放器。
333
+ * @notes <br>调用本方法会提前触发播放准备工作,包括预建连等。
334
+ * @param item 待播放的直播流信息。
335
+ */
336
+
337
+ ios_prepare(item: $p_i.TVLManager): void;
338
+ }
339
+ /** {zh}
340
+ * @platform ios
341
+ * @brief 播放器类型。
342
+ */
343
+
344
+ export declare enum VeLivePlayerType {
345
+ /** {zh}
346
+ * @platform ios
347
+ * @brief 自研播放器。
348
+ */
349
+
350
+ VeLivePlayerTypeOwn = 0,
351
+ /** {zh}
352
+ * @platform ios
353
+ * @brief 系统播放器。
354
+ */
355
+
356
+ VeLivePlayerTypeSystem = 1
357
+ }
358
+ export declare class t_VeLivePlayerType {
359
+ static ts_to_android(value: VeLivePlayerType): never;
360
+ static android_to_ts(value: unknown): never;
361
+ static ts_to_ios(value: VeLivePlayerType): $p_i.VeLivePlayerType;
362
+ static ios_to_ts(value: $p_i.VeLivePlayerType): VeLivePlayerType;
363
+ }
364
+ /**
365
+ * @platform ios
366
+ * 直播特效模型类型
367
+ */
368
+ export declare enum VeLivePlayerEffectType {
369
+ /** {zh}
370
+ * @platform ios
371
+ * @hidden (iOS)
372
+ * @brief 未知模型
373
+ */
374
+
375
+ VeLivePlayerEffectUnknown = 0,
376
+ /** {zh}
377
+ * @platform ios
378
+ * @hidden (iOS)
379
+ * @brief 音量均衡三期模型
380
+ */
381
+
382
+ VeLivePlayerEffectAudioBalance = 1
383
+ }
384
+ export declare class t_VeLivePlayerEffectType {
385
+ static ts_to_android(value: VeLivePlayerEffectType): never;
386
+ static android_to_ts(value: unknown): never;
387
+ static ts_to_ios(value: VeLivePlayerEffectType): $p_i.VeLivePlayerEffectType;
388
+ static ios_to_ts(value: $p_i.VeLivePlayerEffectType): VeLivePlayerEffectType;
389
+ }
@@ -0,0 +1,217 @@
1
+ import { VeLivePlayer } from './api';
2
+ import { VeLivePlayerError } from './errorcode';
3
+ import { VeLivePlayerResolution, VeLivePlayerResolutionSwitchReason, VeLivePlayerStreamType, VeLivePlayerStatus, VeLivePlayerStatistics, VeLivePlayerVideoFrame, VeLivePlayerAudioFrame } from './keytype';
4
+ import * as $p_a from '../android/index';
5
+ import * as $p_i from '../ios/index';
6
+ /** {zh}
7
+ * @detail callback
8
+ * @brief 播放器事件回调。
9
+ */
10
+
11
+ export interface VeLivePlayerObserver {
12
+ /** {zh}
13
+ * @detail callback
14
+ * @brief 播放器错误信息回调,播放器出现错误时,触发回调。
15
+ * @order 1
16
+ * @param player 触发该事件回调的播放器对象。
17
+ * @param error 错误信息,详情请参见 [VeLivePlayerError](188113#VeLivePlayerError)。
18
+ */
19
+
20
+ onError?(player: VeLivePlayer, error: VeLivePlayerError): void;
21
+ /** {zh}
22
+ * @detail callback
23
+ * @brief 视频首帧渲染事件回调。视频首帧渲染成功,或播放过程中发生重试,重试后的第一个视频帧渲染成功,均会触发此回调。
24
+ * @order 2
25
+ * @param player 触发该事件回调的播放器对象。
26
+ * @param isFirstFrame 渲染成功的是否为视频首帧。
27
+ * - true:视频首帧;
28
+ * - false:重试后第一个视频帧。
29
+ */
30
+
31
+ onFirstVideoFrameRender?(player: VeLivePlayer, isFirstFrame: boolean): void;
32
+ /** {zh}
33
+ * @detail callback
34
+ * @brief 音频首帧渲染事件回调。音频首帧渲染成功,或播放过程中发生重试,重试后的第一个音频帧渲染成功,均会触发此回调。
35
+ * @order 3
36
+ * @param player 触发该事件回调的播放器对象。
37
+ * @param isFirstFrame 渲染成功的是否为音频首帧。
38
+ * - true:音频首帧;
39
+ * - false:重试后第一个音频帧。
40
+ */
41
+
42
+ onFirstAudioFrameRender?(player: VeLivePlayer, isFirstFrame: boolean): void;
43
+ /** {zh}
44
+ * @detail callback
45
+ * @brief 播放卡顿开始回调。
46
+ * @order 4
47
+ * @param player 触发该事件回调的播放器对象。
48
+ */
49
+
50
+ onStallStart?(player: VeLivePlayer): void;
51
+ /** {zh}
52
+ * @detail callback
53
+ * @brief 播放卡顿结束回调。音频缓冲区达到起播条件且开始播放后,触发此回调。
54
+ * @order 5
55
+ * @param player 触发该事件回调的播放器对象。
56
+ */
57
+
58
+ onStallEnd?(player: VeLivePlayer): void;
59
+ /** {zh}
60
+ * @detail callback
61
+ * @brief 视频渲染卡顿回调。视频渲染发生卡顿时,触发此回调。
62
+ * @order 6
63
+ * @param player 触发该事件回调的播放器对象。
64
+ * @param stallTime 视频渲染卡顿时长,单位为 ms。
65
+ */
66
+
67
+ onVideoRenderStall?(player: VeLivePlayer, stallTime: number): void;
68
+ /** {zh}
69
+ * @detail callback
70
+ * @brief 音频渲染卡顿回调。音频渲染发生卡顿时,触发此回调。
71
+ * @order 7
72
+ * @param player 触发该事件回调的播放器对象。
73
+ * @param stallTime 音频渲染卡顿时长,单位为 ms。
74
+ */
75
+
76
+ onAudioRenderStall?(player: VeLivePlayer, stallTime: number): void;
77
+ /** {zh}
78
+ * @detail callback
79
+ * @brief 清晰度档位变化回调。
80
+ * @order 8
81
+ * @param player 触发该事件回调的播放器对象。
82
+ * @param resolution 切换后的清晰度档位,详情请参见 [VeLivePlayerResolution](188115#VeLivePlayerResolution)。
83
+ * @param error 切换清晰度档位时,是否发生错误,详情请参见 [VeLivePlayerError](188113#VeLivePlayerError)。
84
+ * @param reason 清晰度档位切换的原因,详情请参见 [VeLivePlayerResolutionSwitchReason](188115#VeLivePlayerResolutionSwitchReason)。
85
+ */
86
+
87
+ onResolutionSwitch?(player: VeLivePlayer, resolution: VeLivePlayerResolution, error: VeLivePlayerError, reason: VeLivePlayerResolutionSwitchReason): void;
88
+ /** {zh}
89
+ * @detail callback
90
+ * @brief 视频分辨率变化回调。视频大小发生变化时,触发回调。
91
+ * @order 9
92
+ * @param player 触发该事件回调的播放器对象。
93
+ * @param width 变化后的视频宽度,单位为 px。
94
+ * @param height 变化后的视频高度,单位为 px。
95
+ */
96
+
97
+ onVideoSizeChanged?(player: VeLivePlayer, width: number, height: number): void;
98
+ /** {zh}
99
+ * @detail callback
100
+ * @brief SEI 信息回调。当播放器 SDK 接收到 SEI 信息时,触发回调。
101
+ * @order 10
102
+ * @param player 触发该事件回调的播放器对象。
103
+ * @param message SEI 信息。
104
+ */
105
+
106
+ onReceiveSeiMessage?(player: VeLivePlayer, message: string): void;
107
+ /** {zh}
108
+ * @detail callback
109
+ * @brief 主备流切换回调。
110
+ * @order 11
111
+ * @param player 触发该事件回调的播放器对象。
112
+ * @param streamType 切换后的流类型为主路流或备路流,详情请参见 [VeLivePlayerStreamType](188115#VeLivePlayerStreamType)。
113
+ * @param error 触发主备流切换的原因,详情请参见 [VeLivePlayerError](188113#VeLivePlayerError)。
114
+ */
115
+
116
+ onMainBackupSwitch?(player: VeLivePlayer, streamType: VeLivePlayerStreamType, error: VeLivePlayerError): void;
117
+ /** {zh}
118
+ * @detail callback
119
+ * @brief 播放状态发生变化时,触发回调。
120
+ * @order 12
121
+ * @param player 触发该事件回调的播放器对象。
122
+ * @param status 当前播放器的状态,详情请参见 [VeLivePlayerStatus](188115#VeLivePlayerStatus)。
123
+ */
124
+
125
+ onPlayerStatusUpdate?(player: VeLivePlayer, status: VeLivePlayerStatus): void;
126
+ /** {zh}
127
+ * @detail callback
128
+ * @brief 播放信息周期性回调。播放器 SDK 会周期性地回调本方法,您可以通过本方法获取当前播放器的播放地址、码率和帧率等信息。
129
+ * @order 13
130
+ * @param player 触发该事件回调的播放器对象。
131
+ * @param statistics 播放器周期性回调的统计信息,详情请参见 [VeLivePlayerStatistics](188115#VeLivePlayerStatistics)。
132
+ */
133
+
134
+ onStatistics?(player: VeLivePlayer, statistics: VeLivePlayerStatistics): void;
135
+ /** {zh}
136
+ * @detail callback
137
+ * @brief 截图成功回调。当播放器调用 {@link #VeLivePlayer#snapshot snapshot} 截图成功后,会触发此回调。
138
+ * @order 14
139
+ * @param player 触发该事件回调的播放器对象。
140
+ * @param bitmap 截图的 Bitmap 对象。
141
+ */
142
+
143
+ onSnapshotComplete?(player: VeLivePlayer, bitmap: any): void;
144
+ /** {zh}
145
+ * @detail callback
146
+ * @brief 视频帧回调。调用 {@link #VeLivePlayer#enableVideoFrameObserver enableVideoFrameObserver} 开启视频帧解析回调后,当播放器成功解码视频帧时,会触发此回调。
147
+ * @notes <br>
148
+ * 如果自定义渲染使用纹理格式,建议在视频帧回调线程中执行渲染操作。
149
+ * @order 15
150
+ * @param player 触发该事件回调的播放器对象。
151
+ * @param videoFrame 视频帧数据,包含像素格式、封装格式、视频宽高等信息,详情请参见 [VeLivePlayerVideoFrame](188115#VeLivePlayerVideoFrame)。
152
+ */
153
+
154
+ onRenderVideoFrame?(player: VeLivePlayer, videoFrame: VeLivePlayerVideoFrame): void;
155
+ /** {zh}
156
+ * @detail callback
157
+ * @brief 音频帧回调。调用 {@link #VeLivePlayer#enableAudioFrameObserver enableAudioFrameObserver} 开启音频帧解析回调后,当播放器成功解码音频帧时,会触发此回调。
158
+ * @notes <br>
159
+ * 回调的音频帧数据为 float32 格式,大端字节序存储。
160
+ * @order 16
161
+ * @param player 触发该事件回调的播放器对象。
162
+ * @param audioFrame 音频数据,详情请参见 [VeLivePlayerAudioFrame](188115#VeLivePlayerAudioFrame)。
163
+ */
164
+
165
+ onRenderAudioFrame?(player: VeLivePlayer, audioFrame: VeLivePlayerAudioFrame): void;
166
+ /** {zh}
167
+ * @detail callback
168
+ * @brief 超分开启失败。调用 {@link #VeLivePlayer#setEnableSuperResolution setEnableSuperResolution} 开启超分后,当播放器不支持超分开启或者超分处理出错时,会触发此回调。
169
+ * @order 17
170
+ * @param player 触发该事件回调的播放器对象。
171
+ * @param error 超分开启失败原因,错误码请参见 [VeLivePlayerErrorCode](188113#VeLivePlayerError-VeLivePlayerErrorCode)。
172
+ */
173
+
174
+ onStreamFailedOpenSuperResolution?(player: VeLivePlayer, error: VeLivePlayerError): void;
175
+ }
176
+ export declare class android_VeLivePlayerObserver extends $p_a.VeLivePlayerObserver {
177
+ protected _instance: VeLivePlayerObserver;
178
+ constructor(_instance: VeLivePlayerObserver);
179
+ onError(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerError): void;
180
+ onFirstVideoFrameRender(arg_0: $p_a.VeLivePlayer, arg_1: boolean): void;
181
+ onFirstAudioFrameRender(arg_0: $p_a.VeLivePlayer, arg_1: boolean): void;
182
+ onStallStart(arg_0: $p_a.VeLivePlayer): void;
183
+ onStallEnd(arg_0: $p_a.VeLivePlayer): void;
184
+ onVideoRenderStall(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.long): void;
185
+ onAudioRenderStall(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.long): void;
186
+ onResolutionSwitch(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerResolution, arg_2: $p_a.VeLivePlayerError, arg_3: $p_a.VeLivePlayerResolutionSwitchReason): void;
187
+ onVideoSizeChanged(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.int, arg_2: $p_a.int): void;
188
+ onReceiveSeiMessage(arg_0: $p_a.VeLivePlayer, arg_1: string): void;
189
+ onMainBackupSwitch(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerStreamType, arg_2: $p_a.VeLivePlayerError): void;
190
+ onPlayerStatusUpdate(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerStatus): void;
191
+ onStatistics(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerStatistics): void;
192
+ onSnapshotComplete(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.Bitmap): void;
193
+ onRenderVideoFrame(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerVideoFrame): void;
194
+ onRenderAudioFrame(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerAudioFrame): void;
195
+ onStreamFailedOpenSuperResolution(arg_0: $p_a.VeLivePlayer, arg_1: $p_a.VeLivePlayerError): void;
196
+ }
197
+ export declare class ios_VeLivePlayerObserver extends $p_i.VeLivePlayerObserver {
198
+ protected _instance: VeLivePlayerObserver;
199
+ constructor(_instance: VeLivePlayerObserver);
200
+ onError(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerError): void;
201
+ onFirstVideoFrameRender(arg_0: $p_i.TVLManager, arg_1: $p_i.BOOL): void;
202
+ onFirstAudioFrameRender(arg_0: $p_i.TVLManager, arg_1: $p_i.BOOL): void;
203
+ onStallStart(arg_0: $p_i.TVLManager): void;
204
+ onStallEnd(arg_0: $p_i.TVLManager): void;
205
+ onVideoRenderStall(arg_0: $p_i.TVLManager, arg_1: $p_i.int64_t): void;
206
+ onAudioRenderStall(arg_0: $p_i.TVLManager, arg_1: $p_i.int64_t): void;
207
+ onResolutionSwitch(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerResolution, arg_2: $p_i.VeLivePlayerError, arg_3: $p_i.VeLivePlayerResolutionSwitchReason): void;
208
+ onVideoSizeChanged(arg_0: $p_i.TVLManager, arg_1: $p_i.int, arg_2: $p_i.int): void;
209
+ onReceiveSeiMessage(arg_0: $p_i.TVLManager, arg_1: $p_i.NSString): void;
210
+ onMainBackupSwitch(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerStreamType, arg_2: $p_i.VeLivePlayerError): void;
211
+ onPlayerStatusUpdate(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerStatus): void;
212
+ onStatistics(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerStatistics): void;
213
+ onSnapshotComplete(arg_0: $p_i.TVLManager, arg_1: $p_i.UIImage): void;
214
+ onRenderVideoFrame(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerVideoFrame): void;
215
+ onRenderAudioFrame(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerAudioFrame): void;
216
+ onStreamFailedOpenSuperResolution(arg_0: $p_i.TVLManager, arg_1: $p_i.VeLivePlayerError): void;
217
+ }