@polyv/wx-live-player-core 3.0.0 → 3.1.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 (39) hide show
  1. package/README.md +144 -9
  2. package/api/api-url.d.ts +36 -0
  3. package/api/index.d.ts +75 -0
  4. package/api/request.d.ts +7 -0
  5. package/core.d.ts +98 -0
  6. package/events-type.d.ts +86 -0
  7. package/export.d.ts +4 -0
  8. package/index.d.ts +4 -0
  9. package/modules/auth/auth-module.d.ts +14 -0
  10. package/modules/auth/type.d.ts +18 -0
  11. package/modules/channel/channel-module.d.ts +23 -0
  12. package/modules/channel/type.d.ts +167 -0
  13. package/modules/level-control/level-control-module.d.ts +34 -0
  14. package/modules/line-control/line-control-module.d.ts +27 -0
  15. package/modules/live/live-module.d.ts +14 -0
  16. package/modules/module-base.d.ts +7 -0
  17. package/modules/monitor/monitor-module.d.ts +20 -0
  18. package/modules/playback/playback-module.d.ts +16 -0
  19. package/modules/qos/export.d.ts +1 -0
  20. package/modules/qos/qos-module.d.ts +58 -0
  21. package/modules/qos/type.d.ts +81 -0
  22. package/modules/quick-control/quick-control-module.d.ts +40 -0
  23. package/modules/restrict/restrict-module.d.ts +21 -0
  24. package/modules/restrict/type.d.ts +35 -0
  25. package/modules/statistics/statistics-module.d.ts +73 -0
  26. package/modules/status/export.d.ts +1 -0
  27. package/modules/status/status-module.d.ts +45 -0
  28. package/modules/status/type.d.ts +47 -0
  29. package/modules/warm/warm-module.d.ts +14 -0
  30. package/package.json +2 -18
  31. package/player.d.ts +151 -0
  32. package/polyv-live-player.d.ts +95 -0
  33. package/polyv-live-player.js +3 -3
  34. package/store/index.d.ts +12 -0
  35. package/store/types.d.ts +54 -0
  36. package/types/error-code.d.ts +24 -0
  37. package/types/index.d.ts +202 -0
  38. package/utils/index.d.ts +34 -0
  39. package/utils/stringByte.d.ts +13 -0
package/player.d.ts ADDED
@@ -0,0 +1,151 @@
1
+ /// <reference types="miniprogram-api-typings" />
2
+ import { PlayerConfig, PlayType, PlayerStatisticsSetting } from './types';
3
+ import { PlayerEventMap } from './events-type';
4
+ export declare class PolyvLive {
5
+ /**
6
+ * 播放内核
7
+ */
8
+ private __playerCore;
9
+ /**
10
+ * 是否已经初始化
11
+ */
12
+ private __inited;
13
+ constructor(config: PlayerConfig);
14
+ /**
15
+ * 播放器初始化
16
+ * @description 初始化播放器, 包括鉴权, 解析当前状态等操作
17
+ */
18
+ setUp(): Promise<void>;
19
+ /**
20
+ * 获取播放类型
21
+ * @returns 播放类型
22
+ * @description 可以通过 `getPlayType` 主动获取当前的播放类型
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const playType = player.getPlayType();
27
+ *
28
+ * if (playType === PlayType.WAIT_START) {
29
+ * console.log('当前暂无直播, 显示暂未直播盖图');
30
+ * }}
31
+ * ```
32
+ */
33
+ getPlayType(): PlayType;
34
+ /**
35
+ * 刷新当前播放流
36
+ * @description 一般用于直播过程中, 出现卡顿等情况, 主动刷新当前播放流
37
+ * @example
38
+ * ```ts
39
+ * <button bind:tap="refresh"></button>
40
+ *
41
+ * player.on(PlayerEventsType.UPDATE_MEDIA_INFO, (mediaInfo: MediaInfo) => {
42
+ * const { playType, src } = mediaInfo;
43
+ * this.setData({ src });
44
+ * });
45
+ *
46
+ * // 调用刷新流接口,触发`UPDATE_MEDIA_INFO`事件更新视频播放地址
47
+ * function refresh() {
48
+ * player.refresh();
49
+ * }
50
+ * ```
51
+ */
52
+ refresh(): void;
53
+ /**
54
+ * 设置统计参数
55
+ * @description 播放中途如设置昵称, 可以通过`setStatics`更新统计参数。一般param1用于设置用户唯一Id,param2用于设置用户昵称等信息
56
+ * @param statics 统计参数
57
+ * @example
58
+ * ```ts
59
+ * player.setStatics({
60
+ * param2: '昵称',
61
+ * });
62
+ * ```
63
+ */
64
+ setStatics(statics: PlayerStatisticsSetting): void;
65
+ /**
66
+ * 开始统计播放时长
67
+ * @description 连麦结束,需要调用`startCountPd`开始统计播放时长
68
+ * @ignore
69
+ */
70
+ startCountPd(): void;
71
+ /**
72
+ * 暂停统计播放时长
73
+ * @description 连麦中途,CDN播放器会暂停统计播放时长,需要调用`stopCountPd`暂停统计播放时长
74
+ * @ignore
75
+ */
76
+ stopCountPd(): void;
77
+ /**
78
+ * 切换线路
79
+ * @description 切换线路, 切换线路后, 会触发`UPDATE_MEDIA_INFO`事件
80
+ * @param line 线路索引 0 代表线路1
81
+ * @example
82
+ * ```ts
83
+ * <button bind:tap="changeLine"></button>
84
+ *
85
+ * player.on(PlayerEventsType.UPDATE_MEDIA_INFO, (mediaInfo: MediaInfo) => {
86
+ * const { playType, src } = mediaInfo;
87
+ * this.setData({ src });
88
+ * });
89
+ *
90
+ * // 调用切换线路接口,触发`UPDATE_MEDIA_INFO`事件更新视频播放地址
91
+ * function changeLine() {
92
+ * player.changeLine(0);
93
+ * }
94
+ * ```
95
+ */
96
+ changeLine(line: number): void;
97
+ /**
98
+ * 切换清晰度
99
+ * @description 切换清晰度, 切换清晰度后, 会触发`UPDATE_MEDIA_INFO`事件
100
+ * @param level 清晰度索引 0 代表流畅
101
+ * @example
102
+ * ```ts
103
+ * <button bind:tap="changeLevel"></button>
104
+ *
105
+ * player.on(PlayerEventsType.UPDATE_MEDIA_INFO, (mediaInfo: MediaInfo) => {
106
+ * const { playType, src } = mediaInfo;
107
+ * this.setData({ src });
108
+ * });
109
+ *
110
+ * // 调用切换清晰度接口,触发`UPDATE_MEDIA_INFO`事件更新视频播放地址
111
+ * function changeLevel() {
112
+ * player.changeLevel();
113
+ * }
114
+ * ```
115
+ */
116
+ changeLevel(level: number): void;
117
+ /**
118
+ * 切换延迟内核
119
+ * @description 切换延迟内核, 切换延迟内核后, 会触发`UPDATE_MEDIA_INFO`事件
120
+ * @param playCore 延迟内核索引 0 代表普通延迟 1 代表无延迟
121
+ */
122
+ changePlayCore(playCore: number): void;
123
+ /**
124
+ * 监测播放组件状态回调
125
+ */
126
+ setLivePlayerStateChange(e: WechatMiniprogram.LivePlayerStateChange): void;
127
+ /**
128
+ * 开始缓冲
129
+ */
130
+ setLoadingStart(): void;
131
+ /**
132
+ * 结束缓冲
133
+ */
134
+ setLoadingEnd(): void;
135
+ /**
136
+ * 播放失败
137
+ */
138
+ setPlayError(args?: any): void;
139
+ /**
140
+ * 事件监听
141
+ */
142
+ on<K extends keyof PlayerEventMap>(event: K, listener: PlayerEventMap[K]): void;
143
+ /**
144
+ * 取消事件监听
145
+ */
146
+ off<K extends keyof PlayerEventMap>(event: K, listener: PlayerEventMap[K]): void;
147
+ /**
148
+ * 销毁播放实例
149
+ */
150
+ destroy(): void;
151
+ }
@@ -118,6 +118,18 @@ export class PolyvLive {
118
118
  * 监测播放组件状态回调
119
119
  */
120
120
  setLivePlayerStateChange(e: WechatMiniprogram.LivePlayerStateChange): void;
121
+ /**
122
+ * 开始缓冲
123
+ */
124
+ setLoadingStart(): void;
125
+ /**
126
+ * 结束缓冲
127
+ */
128
+ setLoadingEnd(): void;
129
+ /**
130
+ * 播放失败
131
+ */
132
+ setPlayError(args?: any): void;
121
133
  /**
122
134
  * 事件监听
123
135
  */
@@ -418,6 +430,85 @@ export type PlayerEventMap = {
418
430
  [PlayerEventsType.LATENCY_PLAY_ERROR]: () => void;
419
431
  };
420
432
 
433
+ /**
434
+ * QoS事件类型枚举
435
+ */
436
+ export enum QosEventType {
437
+ /**
438
+ * 初始化
439
+ */
440
+ INIT = "init",
441
+ /**
442
+ * 频道配置更新
443
+ */
444
+ LOAD_CHANNEL_JSON = "cjson",
445
+ /**
446
+ * 限制配置更新
447
+ */
448
+ LOAD_RESTRICT_JSON = "rjson",
449
+ /**
450
+ * 二次缓冲结束
451
+ */
452
+ BUFFER = "buffer",
453
+ /**
454
+ * 加载到画面的时长
455
+ */
456
+ LOADING = "loading",
457
+ /**
458
+ * 播放错误
459
+ */
460
+ PLAY_ERROR = "error",
461
+ /**
462
+ * 播放卡顿
463
+ */
464
+ STALLING = "stalling",
465
+ /**
466
+ * 直播状态切换
467
+ */
468
+ SWITCH = "switch",
469
+ /**
470
+ * 直播状态
471
+ */
472
+ STATUS_LIVE = "statuslive"
473
+ }
474
+ /**
475
+ * 基础QoS数据接口
476
+ */
477
+ export interface IQosBaseData {
478
+ /**
479
+ * 用户ID
480
+ */
481
+ uid: string;
482
+ /**
483
+ * 频道ID
484
+ */
485
+ cid: string;
486
+ /**
487
+ * 播放ID
488
+ */
489
+ pid: string;
490
+ /**
491
+ * 时间戳
492
+ */
493
+ ts: number;
494
+ /**
495
+ * 当前播放链接域名
496
+ */
497
+ domain?: string;
498
+ /**
499
+ * 会话ID
500
+ */
501
+ session_id?: string;
502
+ /**
503
+ * 客户端信息
504
+ */
505
+ client?: string;
506
+ /**
507
+ * 动态参数
508
+ */
509
+ [key: string]: any;
510
+ }
511
+
421
512
  export interface PlayerError {
422
513
  /**
423
514
  * 错误码, 详见`ErrorCode`
@@ -633,6 +724,10 @@ export interface IChannelJsonConfig {
633
724
  * 拉流防盗链
634
725
  */
635
726
  aliPullProtectExpTime: number;
727
+ /**
728
+ * 卡顿事件发送频率,单位秒
729
+ */
730
+ stallingSendFrequency?: number;
636
731
  }
637
732
  /**
638
733
  * 频道配置接口请求参数