larksr_websdk 3.2.340 → 3.2.342

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 (74) hide show
  1. package/dist/doc/config.md +222 -0
  2. package/dist/doc/event_codes.md +286 -0
  3. package/dist/doc/events.md +229 -0
  4. package/dist/doc/functions.md +603 -0
  5. package/dist/doc/index.md +83 -0
  6. package/dist/doc/member_variables.md +407 -0
  7. package/dist/doc/sdkid_encryption.md +40 -0
  8. package/dist/doc/update.md +447 -0
  9. package/dist/larksr-web-sdk.min.js +1 -1
  10. package/dist/types/api.d.ts +132 -0
  11. package/dist/types/appli_params.d.ts +298 -0
  12. package/dist/types/common/cmd.d.ts +28 -0
  13. package/dist/types/common/constant.d.ts +4 -0
  14. package/dist/types/common/interface.d.ts +30 -0
  15. package/dist/types/config.d.ts +59 -0
  16. package/dist/types/event/event_base.d.ts +11 -0
  17. package/dist/types/event/iframe_poster.d.ts +9 -0
  18. package/dist/types/index.d.ts +23 -0
  19. package/dist/types/lark/Worker.d.ts +0 -0
  20. package/dist/types/lark/application.d.ts +191 -0
  21. package/dist/types/lark/canvas_render.d.ts +28 -0
  22. package/dist/types/lark/custom.d.ts +7 -0
  23. package/dist/types/lark/ice_candiadate_parser.d.ts +24 -0
  24. package/dist/types/lark/lark_event_type.d.ts +114 -0
  25. package/dist/types/lark/media_share_interface.d.ts +46 -0
  26. package/dist/types/lark/message.d.ts +22 -0
  27. package/dist/types/lark/peer_connection.d.ts +191 -0
  28. package/dist/types/lark/peer_connection_media_share.d.ts +101 -0
  29. package/dist/types/lark/recoder.d.ts +55 -0
  30. package/dist/types/lark/sdp_util.d.ts +36 -0
  31. package/dist/types/lark/test_pixel_streaming.d.ts +54 -0
  32. package/dist/types/lark/websocket_channel.d.ts +57 -0
  33. package/dist/types/lark/websocket_proxy.d.ts +56 -0
  34. package/dist/types/larksr.d.ts +1231 -0
  35. package/dist/types/localization/base.d.ts +8 -0
  36. package/dist/types/localization/gesture_ins.d.ts +4 -0
  37. package/dist/types/localization/language.d.ts +6 -0
  38. package/dist/types/localization/loader.d.ts +14 -0
  39. package/dist/types/localization/message.d.ts +81 -0
  40. package/dist/types/localization/ui.d.ts +60 -0
  41. package/dist/types/operation/gamepad_handler.d.ts +67 -0
  42. package/dist/types/operation/gesture.d.ts +72 -0
  43. package/dist/types/operation/gesture_handler.d.ts +53 -0
  44. package/dist/types/operation/handler_base.d.ts +8 -0
  45. package/dist/types/operation/keyboard_handler.d.ts +21 -0
  46. package/dist/types/operation/keymap.d.ts +24 -0
  47. package/dist/types/operation/letter_keymap.d.ts +8 -0
  48. package/dist/types/operation/mouse_handler.d.ts +42 -0
  49. package/dist/types/operation/num_keymap.d.ts +12 -0
  50. package/dist/types/operation/operation.d.ts +97 -0
  51. package/dist/types/operation/pixel_streaming_input.d.ts +82 -0
  52. package/dist/types/operation/touch_handler.d.ts +11 -0
  53. package/dist/types/operation/utils.d.ts +18 -0
  54. package/dist/types/protobuf/cloudlark.d.ts +8221 -0
  55. package/dist/types/screen_state.d.ts +120 -0
  56. package/dist/types/utils/browser_type.d.ts +37 -0
  57. package/dist/types/utils/capabilities.d.ts +54 -0
  58. package/dist/types/utils/full_screen.d.ts +25 -0
  59. package/dist/types/utils/ios-inner-height.d.ts +4 -0
  60. package/dist/types/utils/lock_pointer.d.ts +23 -0
  61. package/dist/types/utils/log.d.ts +25 -0
  62. package/dist/types/utils/scale_mode.d.ts +26 -0
  63. package/dist/types/utils/unit.d.ts +148 -0
  64. package/package.json +1 -1
  65. package/types/lark/application.d.ts +5 -3
  66. package/types/lark/canvas_render.d.ts +28 -0
  67. package/types/lark/custom.d.ts +7 -0
  68. package/types/lark/media_share_interface.d.ts +2 -2
  69. package/types/lark/peer_connection.d.ts +5 -2
  70. package/types/lark/peer_connection_media_share.d.ts +3 -2
  71. package/types/larksr.d.ts +7 -2
  72. package/types/protobuf/cloudlark.d.ts +8221 -0
  73. package/types/screen_state.d.ts +2 -0
  74. package/types/utils/ios-inner-height.d.ts +4 -0
@@ -0,0 +1,120 @@
1
+ import { ViewPort } from "./common/interface";
2
+ import { IAppliParams } from "./appli_params";
3
+ import { CloudLark } from "./protobuf/cloudlark";
4
+ import ScaleMode from "./utils/scale_mode";
5
+ import { LocalEvent, EventBase } from './event/event_base';
6
+ import { LarkSR } from "./larksr";
7
+ export interface ContainerSize {
8
+ marginTop: number;
9
+ marginLeft: number;
10
+ width: number;
11
+ height: number;
12
+ }
13
+ export interface ContainerStyle {
14
+ marginTop: string;
15
+ marginLeft: string;
16
+ width: string;
17
+ height: string;
18
+ cursor: any;
19
+ }
20
+ export declare type ScreenOrientation = 'portrait' | 'landscape';
21
+ export declare enum CursorType {
22
+ ARROW = 0,
23
+ IBEAM = 1,
24
+ WAIT = 2,
25
+ CROSS = 3,
26
+ SIZENWSE = 4,
27
+ SIZENESW = 5,
28
+ SIZEWE = 6,
29
+ SIZENS = 7,
30
+ SIZEALL = 8,
31
+ NO = 9,
32
+ HAND = 10,
33
+ CUSTOM = 11,
34
+ DEFAULT = 1000
35
+ }
36
+ export interface SyncCursorStyle {
37
+ type: CursorType;
38
+ hotX: number;
39
+ hotY: number;
40
+ width: number;
41
+ height: number;
42
+ customBase64: string;
43
+ }
44
+ export declare const enum SCREEN_EVENT_TYPE {
45
+ ReSize = 0
46
+ }
47
+ export interface ScreenEvent extends LocalEvent<SCREEN_EVENT_TYPE> {
48
+ container: ContainerSize;
49
+ viewPort: ViewPort;
50
+ }
51
+ export default class ScreenState extends EventBase<SCREEN_EVENT_TYPE, ScreenEvent> {
52
+ get appSize(): CloudLark.IAppResize;
53
+ set appSize(size: CloudLark.IAppResize);
54
+ private _appSize;
55
+ get viewPort(): ViewPort;
56
+ private _viewPort;
57
+ get viewPortStyle(): string;
58
+ get orientationIndexStyle(): {
59
+ width: string;
60
+ height: string;
61
+ top: string;
62
+ left: string;
63
+ transform: string;
64
+ transformOrigin: string;
65
+ backgroundColor: string;
66
+ } | {
67
+ width: string;
68
+ height: string;
69
+ transform: string;
70
+ transformOrigin: string;
71
+ backgroundColor: string;
72
+ top?: undefined;
73
+ left?: undefined;
74
+ };
75
+ get container(): ContainerSize;
76
+ private _container;
77
+ get containerStyle(): string;
78
+ get screenOrientation(): ScreenOrientation;
79
+ private _screenOrientation;
80
+ get scaleMode(): ScaleMode;
81
+ set scaleMode(scaleMode: ScaleMode);
82
+ private _scaleMode;
83
+ get isFullScreen(): boolean;
84
+ private _isFullScreen;
85
+ get cursorStyle(): SyncCursorStyle;
86
+ set cursorStyle(style: SyncCursorStyle);
87
+ private _cursorStyle;
88
+ private get cursorCSSStyle();
89
+ get appMouseMode(): CloudLark.IAppMouseMode;
90
+ set appMouseMode(mode: CloudLark.IAppMouseMode);
91
+ private _appMouseMode;
92
+ get operateScale(): {
93
+ scaleX: number;
94
+ scaleY: number;
95
+ };
96
+ get initCursorMode(): boolean;
97
+ set initCursorMode(mode: boolean);
98
+ private _initCursorMode;
99
+ get isMobile(): boolean;
100
+ private _isMobile;
101
+ get isLocalRenderMouse(): boolean | null | undefined;
102
+ get isLockMosue(): boolean | null | undefined;
103
+ get rootElement(): HTMLElement;
104
+ private _rootElement;
105
+ private mobileForceLandScape;
106
+ private bgColor;
107
+ get handleRootElementSize(): boolean;
108
+ private _handleRootElementSize;
109
+ get onlyHandleRootElementTransform(): boolean;
110
+ private _onlyHandleRootElementTransform;
111
+ private larksr;
112
+ get baseElementScale(): number;
113
+ private _baseElementScale;
114
+ get wechatFullScreen(): boolean;
115
+ private _wechatFullScreen;
116
+ constructor(rootElement: HTMLElement, params: IAppliParams, larksr: LarkSR, handleRootElementSize?: boolean, onlyHandleRootElementTransform?: boolean);
117
+ reset(params: IAppliParams): void;
118
+ setMobileForceLandScape(force: boolean): void;
119
+ resize(baseElementScale?: number): void;
120
+ }
@@ -0,0 +1,37 @@
1
+ export default class BrowserType {
2
+ static Type: {
3
+ Chrome: string;
4
+ iOSChrome: string;
5
+ Firefox: string;
6
+ Edge: string;
7
+ Opera: string;
8
+ IE: string;
9
+ Safari: string;
10
+ };
11
+ static Support: {
12
+ Chrome: number;
13
+ Firefox: number;
14
+ Edge: number;
15
+ };
16
+ static AdviseSupportVersion: {
17
+ Chrome: number;
18
+ Firefox: number;
19
+ Edge: number;
20
+ };
21
+ static SupportMobile: {
22
+ Chrome: number;
23
+ iOSChrome: number;
24
+ Firefox: number;
25
+ Edge: number;
26
+ };
27
+ static getBrowserType(): string;
28
+ /**
29
+ * @return
30
+ * -2 推荐升级版本
31
+ * -1 有问题版本
32
+ * 0 不支持
33
+ * 1 支持
34
+ */
35
+ static checkSupport(): 0 | 1 | -1 | -2;
36
+ static getBrowserVersion(type?: string): number;
37
+ }
@@ -0,0 +1,54 @@
1
+ declare class Capabilities {
2
+ /**
3
+ * @private
4
+ */
5
+ static $language: string;
6
+ /**
7
+ * @language zh_CN
8
+ * 表示运行内容的系统的语言代码。语言指定为 ISO 639-1 中的小写双字母语言代码。
9
+ * 对于中文,另外使用 ISO 3166 中的大写双字母国家/地区代码,以区分简体中文和繁体中文。<br/>
10
+ * 以下是可能但不限于的语言和值:
11
+ * <ul>
12
+ * <li>简体中文 zh-CN</li>
13
+ * <li>繁体中文 zh-TW</li>
14
+ * <li>英语 en</li>
15
+ * <li>日语 ja</li>
16
+ * <li>韩语 ko</li>
17
+ * </ul>
18
+ */
19
+ static get language(): string;
20
+ /**
21
+ * @private
22
+ */
23
+ static $isMobile: boolean;
24
+ /**
25
+ * 表示程序内容是否运行在移动设备中(例如移动电话或平板电脑)。
26
+ */
27
+ static get isMobile(): boolean;
28
+ static $isWeChat: boolean;
29
+ static get isWeChat(): boolean;
30
+ static $isQQ: boolean;
31
+ static get isQQ(): boolean;
32
+ static $isHuawei: boolean;
33
+ static get isHuawei(): boolean;
34
+ /**
35
+ * @private
36
+ */
37
+ static $os: string;
38
+ /**
39
+ * @language zh_CN
40
+ * 指示当前的操作系统。os 属性返回下列字符串:
41
+ * <ul>
42
+ * <li>苹果手机操作系统 "iOS"</li>
43
+ * <li>安卓手机操作系统 "Android"</li>
44
+ * <li>微软手机操作系统 "Windows Phone"</li>
45
+ * <li>微软桌面操作系统 "Windows PC"</li>
46
+ * <li>苹果桌面操作系统 "Mac OS"</li>
47
+ * <li>未知操作系统 "Unknown"</li>
48
+ * </ul>
49
+ */
50
+ static get os(): string;
51
+ static $isIOSSafari: boolean;
52
+ static get isIOSSafari(): boolean;
53
+ }
54
+ export default Capabilities;
@@ -0,0 +1,25 @@
1
+ import { EventBase, LocalEvent } from '../event/event_base';
2
+ export declare const enum FullScreenEventType {
3
+ FullScreenChange = 0,
4
+ FullScreenFailed = 1
5
+ }
6
+ export interface FullScreenEvent extends LocalEvent<FullScreenEventType> {
7
+ isFullScreen: boolean;
8
+ error: any;
9
+ }
10
+ /**
11
+ * 全屏显示
12
+ */
13
+ export default class FullScreen extends EventBase<FullScreenEventType, FullScreenEvent> {
14
+ get isFullScreen(): boolean;
15
+ element: HTMLElement;
16
+ private _isFullScreen;
17
+ constructor();
18
+ startListening(): void;
19
+ stopListening(): void;
20
+ private fullscreenChange;
21
+ private fullscreenError;
22
+ launchFullScreen(): void;
23
+ exitFullscreen(): void;
24
+ private createEvent;
25
+ }
@@ -0,0 +1,4 @@
1
+ declare module "ios-inner-height" {
2
+ function innerHeight(): number;
3
+ export = innerHeight;
4
+ }
@@ -0,0 +1,23 @@
1
+ import { EventBase, LocalEvent } from '../event/event_base';
2
+ export declare const enum LockPointerEventType {
3
+ LockPointChange = 0,
4
+ LockPointFailed = 1
5
+ }
6
+ export interface LockPointerEvent extends LocalEvent<LockPointerEventType> {
7
+ isLockPointer: boolean;
8
+ error: any;
9
+ }
10
+ export default class LockPointer extends EventBase<LockPointerEventType, LockPointerEvent> {
11
+ get isLockPointer(): boolean;
12
+ private _isLockPointer;
13
+ element: HTMLElement;
14
+ constructor(element: HTMLElement);
15
+ listenLockChange(): void;
16
+ removeListenLockChange(): void;
17
+ lockPointer(): void;
18
+ requestLockPointer(): void;
19
+ exitPointerLock(): void;
20
+ private pointerlockChange;
21
+ private lockscreenFailed;
22
+ private createEvent;
23
+ }
@@ -0,0 +1,25 @@
1
+ export declare class Level {
2
+ static INFO: string;
3
+ static WARN: string;
4
+ static ERR: string;
5
+ static TRACE: string;
6
+ static getLevelIndex(level: string): 0 | 2 | 1 | 3 | 4;
7
+ }
8
+ export interface LogObserver {
9
+ onLog(msg: string): void;
10
+ }
11
+ /**
12
+ *
13
+ */
14
+ export default class Log {
15
+ static get logLevel(): string;
16
+ static set logLevel(level: string);
17
+ static _logLevel: string;
18
+ static info(...info: any[]): void;
19
+ static warn(...warn: any[]): void;
20
+ static err(...err: any[]): void;
21
+ static trace(...log: any[]): void;
22
+ static setObserver(ob: LogObserver): void;
23
+ private static _observer;
24
+ private static log;
25
+ }
@@ -0,0 +1,26 @@
1
+ export default class ScaleMode {
2
+ /**
3
+ * fit模式,完整的显示内容,如果太大就缩小至合适的大小
4
+ */
5
+ static FIT_SCREEN: string;
6
+ /**
7
+ * 以视频的宽高为基准缩放
8
+ */
9
+ static CONTAIN_VIDEO: string;
10
+ /**
11
+ * 以应用原始尺寸的缩放.
12
+ */
13
+ static CONTAIN_APP: string;
14
+ /**
15
+ * 裁剪模式,完全填充屏幕但保留宽高比
16
+ */
17
+ static FILL_CLIP: string;
18
+ /**
19
+ * 拉伸模式,完全填充屏幕但不保留宽高比
20
+ */
21
+ static FILL_STRETCH: string;
22
+ /**
23
+ * offset 控制条的高度
24
+ */
25
+ static OFFSET: number;
26
+ }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Unit 类 常用单元函数
3
+ */
4
+ import { CSSPosition, Point, ViewPort, OffsetView, Vector } from '../common/interface';
5
+ export default class Unit {
6
+ static queryString(name: string): string;
7
+ static queryURL(uri: URL, name: string): string;
8
+ /**
9
+ * 深度拷贝对象,创建新对象
10
+ * @param source 输入对象
11
+ */
12
+ static deepCopy(source: any): any;
13
+ static deepCopyArray<T>(source: T[]): T[];
14
+ /**
15
+ * 浏览器窗口大小相关
16
+ */
17
+ static getElementViewport(element: HTMLElement, baseElementScale?: number): ViewPort;
18
+ /**
19
+ * 获取某元素距离文档的距离
20
+ * @param element 元素对象
21
+ * @returns 高度
22
+ */
23
+ static elementTop(element: HTMLElement): number;
24
+ /**
25
+ * 获取元素距离文档左侧的距离
26
+ * @param element 元素对象
27
+ * @returns 左侧距离
28
+ */
29
+ static elementLeft(element: HTMLElement): number;
30
+ static singlePointRelativePosition(e: Touch | MouseEvent, element: HTMLElement): Point;
31
+ /**
32
+ * 获取触摸点相对元素的坐标
33
+ * @param {e} e 触摸回调事件
34
+ * @param offset getOffsetViewport 获取的 offset 对象. {offsetX,offsetY}
35
+ * @return res[] 包含多指操作触摸点的数组
36
+ */
37
+ static touchRelativePosition(e: any, offset: OffsetView): Array<any>;
38
+ /**
39
+ * 计算两个点之间的距离
40
+ */
41
+ static pointsDistance(p1: Point, p2: Point): number;
42
+ /**
43
+ * 获取两点间的向量
44
+ * @p1 start point
45
+ * @p2 end point
46
+ */
47
+ static vector(p1: Point, p2: Point): Vector;
48
+ static vectorModule(v: Vector): number;
49
+ static vectorCosAngle(v1: Vector, v2: Vector): number;
50
+ static vectorDotProduct(v1: Vector, v2: Vector): number;
51
+ static vectorDet(v1: Vector, v2: Vector): number;
52
+ static midpointCoordinate(pointList: Point[]): Point;
53
+ /**
54
+ * 格式化输出时间
55
+ * @param t 输入时间,以秒计算
56
+ * @return 输出时间字符串 aa:bb:cc
57
+ */
58
+ static formatTimeString(t?: number): string;
59
+ /**
60
+ * 格式化输出时间
61
+ * @param t 输入时间,以分钟计算
62
+ * @return 输出时间字符串 aa:bb:cc
63
+ */
64
+ static formatMinTimeString(t?: number): string;
65
+ /**
66
+ * get sign
67
+ * -0 ===> -1
68
+ * +0 ===> +1
69
+ * 22 ===> +1
70
+ * -2 ===> -1
71
+ */
72
+ static sign(num: number): number;
73
+ /**
74
+ * cover css position to point
75
+ */
76
+ static coverPointToCssPosition(p: Point): CSSPosition;
77
+ /**
78
+ * cover point to css position
79
+ */
80
+ static coverCssPositionToPoint(p: CSSPosition): Point;
81
+ /**
82
+ * 获取浏览器窗口大小
83
+ * @returns { width: 窗口宽, height: 窗口高 }
84
+ */
85
+ static getViewport(): {
86
+ width: number;
87
+ height: number;
88
+ };
89
+ /**
90
+ * 获取某元素距离文档的距离
91
+ * @param element 元素对象
92
+ * @returns 高度
93
+ */
94
+ static getElementTop(element: HTMLElement): number;
95
+ /**
96
+ * 获取元素距离文档左侧的距离
97
+ * @param element 元素对象
98
+ * @returns 左侧距离
99
+ */
100
+ static getElementLeft(element: HTMLElement): number;
101
+ /**
102
+ * 获取元素相对文档位置
103
+ * @param element 元素对象
104
+ * @returns { offsetX:X, offsetY:Y }
105
+ */
106
+ static getOffsetViewport(element: HTMLElement): {
107
+ offsetX: number;
108
+ offsetY: number;
109
+ };
110
+ static getBoundingClientRect(element: HTMLElement): {
111
+ top: number;
112
+ left: number;
113
+ right: number;
114
+ bottom: number;
115
+ };
116
+ static getBoundingClientRectSize(element: HTMLElement): {
117
+ width: number;
118
+ height: number;
119
+ };
120
+ /**
121
+ * 获取鼠标相对元素的坐标
122
+ * @param {*} e 鼠标回调事件
123
+ * @param element dom 元素
124
+ */
125
+ static getMousePositon(e: MouseEvent, element: HTMLElement): {
126
+ x: number;
127
+ y: number;
128
+ };
129
+ /**
130
+ * 刷新当前页面
131
+ */
132
+ static fresh(): void;
133
+ static ab2str(buf: ArrayBuffer): string;
134
+ static strToU8Arraybuf(str: string): ArrayBuffer;
135
+ static bytesEqual(buf1: Uint8Array, buf2: Uint8Array): boolean;
136
+ /**
137
+ * 获取手机端相对像素
138
+ * ue图宽度 1340
139
+ */
140
+ static getMobliePixelWidth(px: number, mobilePixelUnit: number): number;
141
+ static IsIframe(): boolean;
142
+ /**
143
+ * 向上为整数并且 向上计算为偶数
144
+ * @param n
145
+ * @returns
146
+ */
147
+ static evenNumber(n: number): number;
148
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "larksr_websdk",
3
- "version": "3.2.340",
3
+ "version": "3.2.342",
4
4
  "description": "Larksr websdk. Easy to build a cloud render client for larksr system or ue4 pixelstreaming.docs: https://pingxingyun.github.io/webclient_sdk/",
5
5
  "keywords": [
6
6
  "pingxingyun",
@@ -44,7 +44,8 @@ export declare enum APP_EVENT_TYPE {
44
44
  AI_VOICE_DM_RESULT = 20,
45
45
  AI_VOICE_ERROR = 21,
46
46
  RTMP_STREAM_STATE = 22,
47
- RTMP_STREAM_ERROR = 23
47
+ RTMP_STREAM_ERROR = 23,
48
+ RTC_RETRY_SUCCESS = 24
48
49
  }
49
50
  export interface AppEvent extends LocalEvent<APP_EVENT_TYPE> {
50
51
  data?: any;
@@ -66,6 +67,7 @@ export default class Application extends EventBase<APP_EVENT_TYPE, AppEvent> {
66
67
  get videoTrack(): MediaStreamTrack | null | undefined;
67
68
  get audioPaused(): boolean | undefined;
68
69
  get videoPaused(): boolean | undefined;
70
+ get serverFeatures(): Msg.CloudLark.INotifyFeatures | null | undefined;
69
71
  private get sharePeerConnection();
70
72
  private retryTime;
71
73
  private larksr;
@@ -146,7 +148,7 @@ export default class Application extends EventBase<APP_EVENT_TYPE, AppEvent> {
146
148
  closeVideo(): any;
147
149
  closeShare(): any;
148
150
  openAudio(deviceId?: string): Promise<any>;
149
- openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number): Promise<any>;
151
+ openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number, front?: boolean): Promise<any>;
150
152
  openDefaultMedia(video?: boolean, audio?: boolean): Promise<any>;
151
153
  openShareMediaDevice(): Promise<any>;
152
154
  getConnectedAudioinputDevices(): Promise<any>;
@@ -154,7 +156,7 @@ export default class Application extends EventBase<APP_EVENT_TYPE, AppEvent> {
154
156
  getConnectedVideoinputDevices(): Promise<any>;
155
157
  getConnectedDevices(type: MediaDeviceKind): Promise<any>;
156
158
  openAudioDevice(deviceId: string, kind?: "audioinput" | "audiooutput"): Promise<any>;
157
- openCamera(cameraId: string, minWidth?: number, minHeight?: number): Promise<any>;
159
+ openCamera(cameraId: string, minWidth?: number, minHeight?: number, audio?: boolean, front?: boolean): Promise<any>;
158
160
  openUserMeida(constraints?: MediaStreamConstraints, reset?: boolean): Promise<any>;
159
161
  addMediaTrack(track: MediaStreamTrack, ...streams: MediaStream[]): boolean | undefined;
160
162
  removeMediaTrack(track: RTCRtpSender): any;
@@ -0,0 +1,28 @@
1
+ import ScreenState from '@/screen_state';
2
+ export default class CanvasRender {
3
+ get canvas(): HTMLCanvasElement | null;
4
+ private set canvas(value);
5
+ private _canvas;
6
+ private context;
7
+ private width;
8
+ private height;
9
+ private video;
10
+ private drawFrames;
11
+ private stream;
12
+ private screenState;
13
+ private hasDeviceOrientationEvent;
14
+ private alpha;
15
+ private beta;
16
+ private gamma;
17
+ private isFront;
18
+ private currentRotateClock;
19
+ constructor(screenState: ScreenState);
20
+ init(stream: MediaStream): Promise<HTMLCanvasElement>;
21
+ draw(): void;
22
+ stopDrawing(): void;
23
+ clear(): void;
24
+ setRotate(clock: boolean): void;
25
+ clearRotate(): void;
26
+ setupRotateWithDeivce(): void;
27
+ private checkFront;
28
+ }
@@ -0,0 +1,7 @@
1
+ // declare module "worker-loader!*" {
2
+ // class WebpackWorker extends Worker {
3
+ // constructor();
4
+ // }
5
+
6
+ // export = WebpackWorker;
7
+ // }
@@ -30,7 +30,7 @@ export interface MediaShareInterface {
30
30
  closeVideo(): any;
31
31
  closeShare(): any;
32
32
  openAudio(deviceId: string): Promise<any>;
33
- openVideo(audio: boolean, cameraId: string, width: number, height: number): Promise<any>;
33
+ openVideo(audio: boolean, cameraId: string, width: number, height: number, front?: boolean): Promise<any>;
34
34
  openDefaultMedia(video: boolean, audio: boolean): Promise<any>;
35
35
  openShareMediaDevice(): Promise<any>;
36
36
  getConnectedAudioinputDevices(): Promise<any>;
@@ -38,7 +38,7 @@ export interface MediaShareInterface {
38
38
  getConnectedVideoinputDevices(): Promise<any>;
39
39
  getConnectedDevices(type: MediaDeviceKind): Promise<any>;
40
40
  openAudioDevice(deviceId: string, kind: "audioinput" | "audiooutput"): Promise<any>;
41
- openCamera(cameraId: string, minWidth: number, minHeight: number): Promise<any>;
41
+ openCamera(cameraId: string, minWidth: number, minHeight: number, audio: boolean, front?: boolean): Promise<any>;
42
42
  openUserMeida(constraints?: MediaStreamConstraints, reset?: boolean): Promise<any>;
43
43
  addMediaTrack(track: MediaStreamTrack, ...streams: MediaStream[]): boolean;
44
44
  removeMediaTrack(track: RTCRtpSender): any;
@@ -106,6 +106,9 @@ export default class PeerConnection extends EventBase<WEBRTC_EVENT_TYPE, WebRTCE
106
106
  private videoBinding;
107
107
  private readonly sendStream;
108
108
  private sdpCreateSuccess;
109
+ private canvasRender;
110
+ get serverFeatures(): CloudLark.INotifyFeatures | null;
111
+ private _serverFeatures;
109
112
  constructor(larksr: LarkSR, config: WebRTCConfig);
110
113
  create(streams?: MediaStream | undefined | null, config?: CloudLark.IRTCConfiguration | null | undefined): Promise<void>;
111
114
  createOffer(): void;
@@ -128,7 +131,7 @@ export default class PeerConnection extends EventBase<WEBRTC_EVENT_TYPE, WebRTCE
128
131
  streams: MediaStream;
129
132
  rtcRtpSenders: RTCMediaTrackBinding[];
130
133
  }>;
131
- openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number): Promise<{
134
+ openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number, front?: boolean): Promise<{
132
135
  streams: MediaStream;
133
136
  rtcRtpSenders: RTCMediaTrackBinding[];
134
137
  }>;
@@ -145,7 +148,7 @@ export default class PeerConnection extends EventBase<WEBRTC_EVENT_TYPE, WebRTCE
145
148
  streams: MediaStream;
146
149
  rtcRtpSenders: RTCMediaTrackBinding[];
147
150
  }>;
148
- openCamera(cameraId: string, width?: number, height?: number, audio?: boolean): Promise<{
151
+ openCamera(cameraId: string, width?: number, height?: number, audio?: boolean, front?: boolean): Promise<{
149
152
  streams: MediaStream;
150
153
  rtcRtpSenders: RTCMediaTrackBinding[];
151
154
  }>;
@@ -33,6 +33,7 @@ export default class PeerConnectionMediaShare extends EventBase<WEBRTC_MEDIA_SHA
33
33
  private videoBinding;
34
34
  private sdpCreateSuccess;
35
35
  private readonly sendStream;
36
+ private canvasRender;
36
37
  constructor(larksr: LarkSR);
37
38
  create(config?: CloudLark.IRTCConfiguration | null | undefined): Promise<void>;
38
39
  createOffer(): void;
@@ -55,7 +56,7 @@ export default class PeerConnectionMediaShare extends EventBase<WEBRTC_MEDIA_SHA
55
56
  streams: MediaStream;
56
57
  rtcRtpSenders: RTCMediaTrackBinding[];
57
58
  }>;
58
- openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number): Promise<{
59
+ openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number, front?: boolean): Promise<{
59
60
  streams: MediaStream;
60
61
  rtcRtpSenders: RTCMediaTrackBinding[];
61
62
  }>;
@@ -72,7 +73,7 @@ export default class PeerConnectionMediaShare extends EventBase<WEBRTC_MEDIA_SHA
72
73
  streams: MediaStream;
73
74
  rtcRtpSenders: RTCMediaTrackBinding[];
74
75
  }>;
75
- openCamera(cameraId: string, width?: number, height?: number, audio?: boolean): Promise<{
76
+ openCamera(cameraId: string, width?: number, height?: number, audio?: boolean, front?: boolean): Promise<{
76
77
  streams: MediaStream;
77
78
  rtcRtpSenders: RTCMediaTrackBinding[];
78
79
  }>;
package/types/larksr.d.ts CHANGED
@@ -647,6 +647,10 @@ declare class LarkSR extends EventBase<LarkSRClientEvent, LarkSREvent> {
647
647
  * 视频通道是否暂停
648
648
  */
649
649
  get videoPaused(): boolean | undefined;
650
+ /**
651
+ * 服务器支持的功能列表
652
+ */
653
+ get serverFeatures(): CloudLark.INotifyFeatures | null | undefined;
650
654
  /**
651
655
  * LarkSR 客户端。所有操作和事件通过该类传递
652
656
  * @param config 本地配置,优先级最高
@@ -1090,7 +1094,7 @@ declare class LarkSR extends EventBase<LarkSRClientEvent, LarkSREvent> {
1090
1094
  * @param cameraId 视频设备id,如果不传将打开默认设备。@see getConnectedVideoinputDevices
1091
1095
  * @returns Promise
1092
1096
  */
1093
- openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number): Promise<any>;
1097
+ openVideo(audio?: boolean, cameraId?: string, width?: number, height?: number, front?: boolean): Promise<any>;
1094
1098
  /**
1095
1099
  * 打开默认媒体设备,要注意浏览器限制在 https 或者 localhost 下
1096
1100
  * 如果需要指定特殊的媒体设备请单独使用 @see openAudio @see openVideo
@@ -1135,7 +1139,7 @@ declare class LarkSR extends EventBase<LarkSRClientEvent, LarkSREvent> {
1135
1139
  * @param minHeight 限制打开设备的高
1136
1140
  * @returns @see openUserMedia
1137
1141
  */
1138
- openCamera(cameraId: string, minWidth?: number, minHeight?: number): Promise<any>;
1142
+ openCamera(cameraId: string, minWidth?: number, minHeight?: number, audio?: boolean, front?: boolean): Promise<any>;
1139
1143
  /**
1140
1144
  * 请求浏览器打开媒体并且打开上传到服务器通道。
1141
1145
  * 要注意的是在服务器连接成功之后请求打开
@@ -1209,6 +1213,7 @@ declare class LarkSR extends EventBase<LarkSRClientEvent, LarkSREvent> {
1209
1213
  private taskProcess;
1210
1214
  private startProcess;
1211
1215
  private onAppStateChange;
1216
+ private onRTCRetrySuccess;
1212
1217
  private onGotRemoteStream;
1213
1218
  private onGotRemoteAudioStream;
1214
1219
  private onCursorStyle;