armcloud-rtc 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.
- package/README.md +5 -0
- package/dist/index.cjs.js +21 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.js +21 -0
- package/dist/index.es.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/lib/constant.d.ts +122 -0
- package/dist/types/lib/enums.d.ts +8 -0
- package/dist/types/lib/error.d.ts +26 -0
- package/dist/types/lib/huoshanGroupRtc.d.ts +17 -0
- package/dist/types/lib/huoshanRtc.d.ts +159 -0
- package/dist/types/lib/pkg.d.ts +92 -0
- package/dist/types/lib/shake.d.ts +8 -0
- package/dist/types/lib/type.d.ts +88 -0
- package/dist/types/lib/utils.d.ts +5 -0
- package/dist/types/lib/webRtc.d.ts +178 -0
- package/dist/types/types/index.d.ts +88 -0
- package/package.json +36 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { CustomDefinition } from "./type";
|
|
2
|
+
declare class WebRTC {
|
|
3
|
+
private initDomId;
|
|
4
|
+
private initDomWidth;
|
|
5
|
+
private initDomHeight;
|
|
6
|
+
private videoDomId;
|
|
7
|
+
private remoteVideoContainerId;
|
|
8
|
+
private remoteVideoId;
|
|
9
|
+
private remoteAudioStream;
|
|
10
|
+
private remoteVideoStream;
|
|
11
|
+
private hasPushDown;
|
|
12
|
+
private refreshUiMsgNumber;
|
|
13
|
+
private getFirstFrame;
|
|
14
|
+
private errorInfo;
|
|
15
|
+
private remoteResolution;
|
|
16
|
+
private roomMessage;
|
|
17
|
+
private options;
|
|
18
|
+
private socket;
|
|
19
|
+
private retryCount;
|
|
20
|
+
private retryCountBackup;
|
|
21
|
+
private retryTime;
|
|
22
|
+
private remotePc;
|
|
23
|
+
private dataChannel;
|
|
24
|
+
private remoteUserId;
|
|
25
|
+
private inputElement;
|
|
26
|
+
autoRecoveryTimer: any;
|
|
27
|
+
runInfoTimer: any;
|
|
28
|
+
private touchConfig;
|
|
29
|
+
/**
|
|
30
|
+
* 安卓对应回车值
|
|
31
|
+
* go:前往 2
|
|
32
|
+
* search:搜索 3
|
|
33
|
+
* send:发送 4
|
|
34
|
+
* next:下一个 5
|
|
35
|
+
* done:完成 6
|
|
36
|
+
* previous:上一个 7
|
|
37
|
+
*/
|
|
38
|
+
enterkeyhintObj: {
|
|
39
|
+
2: string;
|
|
40
|
+
3: string;
|
|
41
|
+
4: string;
|
|
42
|
+
5: string;
|
|
43
|
+
6: string;
|
|
44
|
+
7: string;
|
|
45
|
+
};
|
|
46
|
+
private socketParams;
|
|
47
|
+
callbacks: any;
|
|
48
|
+
audioStream: any;
|
|
49
|
+
audioSender: any;
|
|
50
|
+
logTime: any;
|
|
51
|
+
constructor(viewId: string, params: any, callbacks: any, logTime: any);
|
|
52
|
+
setLogTime(key: any): void;
|
|
53
|
+
sendEventReport(operation: any): void;
|
|
54
|
+
getMsgTemplate(touchType: string, content: object): string;
|
|
55
|
+
/** 获取应用信息 */
|
|
56
|
+
getEquipmentInfo(type: "app" | "attr"): void;
|
|
57
|
+
/** 应用卸载 */
|
|
58
|
+
appUnInstall(pkgNames: Array<string>): void;
|
|
59
|
+
addReportInfo(info: any): void;
|
|
60
|
+
/**
|
|
61
|
+
* AES 解密方法
|
|
62
|
+
* @param {*} encryptData 加密数据
|
|
63
|
+
* @param {*} key 秘钥
|
|
64
|
+
* @returns 解密后数据
|
|
65
|
+
*/
|
|
66
|
+
decryptAES(encryptData: string, key: string): any;
|
|
67
|
+
pauseAudioMedia(): void;
|
|
68
|
+
captureAndSendAudio(): Promise<void>;
|
|
69
|
+
/** 初始化ws */
|
|
70
|
+
initWebSocket(): void;
|
|
71
|
+
startPlay(): void;
|
|
72
|
+
/** 加入房间 */
|
|
73
|
+
start(): void;
|
|
74
|
+
/** 发送offer */
|
|
75
|
+
sendOffer(): Promise<void>;
|
|
76
|
+
/** 接收webrtc offer */
|
|
77
|
+
receiveOffer(offer: any): Promise<void>;
|
|
78
|
+
/** 接收webrtc answer */
|
|
79
|
+
receiveAnswer(answer: any): Promise<void>;
|
|
80
|
+
/** 发送webrtc answer */
|
|
81
|
+
sendAnswer(): Promise<void>;
|
|
82
|
+
isFirstFrameSuccess(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 控制轨道声音
|
|
85
|
+
* @param streams
|
|
86
|
+
* @param status
|
|
87
|
+
*/
|
|
88
|
+
controlTrackVoice(streams: any, type?: string, status?: boolean): void;
|
|
89
|
+
/** 第一帧加载完成 */
|
|
90
|
+
renderedFirstFrame(): void;
|
|
91
|
+
/** 等待视频首帧画面被渲染 */
|
|
92
|
+
waitForFirstFrameRendered(video: any): void;
|
|
93
|
+
/** 销毁引擎 */
|
|
94
|
+
destroyEngine(): void;
|
|
95
|
+
stop(describe: any): void;
|
|
96
|
+
/** 定期获取统计信息的函数 */
|
|
97
|
+
getStats(): Promise<void>;
|
|
98
|
+
/** 浏览器是否支持 */
|
|
99
|
+
isSupported(): boolean;
|
|
100
|
+
/** 触发无操作回收回调函数 */
|
|
101
|
+
triggerRecoveryTimeCallback(): void;
|
|
102
|
+
/** 发送消息 */
|
|
103
|
+
sendUserMessage(message: string): Promise<void>;
|
|
104
|
+
/** 监听广播消息 */
|
|
105
|
+
onRoomMessageReceived(): void;
|
|
106
|
+
/**
|
|
107
|
+
* 将字符串发送到云手机的粘贴板中
|
|
108
|
+
* @param inputStr 需要发送的字符串
|
|
109
|
+
*/
|
|
110
|
+
sendInputClipper(inputStr: string): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* 当云手机处于输入状态时,将字符串直接发送到云手机,完成输入
|
|
113
|
+
* @param inputStr 需要发送的字符串
|
|
114
|
+
*/
|
|
115
|
+
sendInputString(inputStr: string): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* 发送摇一摇信息
|
|
118
|
+
*/
|
|
119
|
+
sendShakeInfo(time: any): void;
|
|
120
|
+
/** 清晰度切换 */
|
|
121
|
+
setStreamConfig(config: CustomDefinition): void;
|
|
122
|
+
handleSendData(options: any): string;
|
|
123
|
+
/**
|
|
124
|
+
* 暂停接收来自远端的媒体流
|
|
125
|
+
* 该方法仅暂停远端流的接收,并不影响远端流的采集和发送。
|
|
126
|
+
* @param mediaType 1 只控制音频; 2 只控制视频; 3 同时控制音频和视频
|
|
127
|
+
*/
|
|
128
|
+
pauseAllSubscribedStream(mediaType?: number): void;
|
|
129
|
+
/**
|
|
130
|
+
* 恢复接收来自远端的媒体流
|
|
131
|
+
* 该方法仅恢复远端流的接收,并不影响远端流的采集和发送。
|
|
132
|
+
* @param mediaType 1 只控制音频; 2 只控制视频; 3 同时控制音频和视频
|
|
133
|
+
*/
|
|
134
|
+
resumeAllSubscribedStream(mediaType?: number): void;
|
|
135
|
+
/** 截图-保存到本地 */
|
|
136
|
+
saveScreenShotToLocal(): Promise<unknown>;
|
|
137
|
+
/** 截图-保存到云机 */
|
|
138
|
+
saveScreenShotToRemote(): void;
|
|
139
|
+
/**
|
|
140
|
+
* 手动横竖屏
|
|
141
|
+
* 对标百度API
|
|
142
|
+
*/
|
|
143
|
+
setPhoneRotation(type: number): void;
|
|
144
|
+
rotateScreen(degree: number): void;
|
|
145
|
+
/** 手动定位 */
|
|
146
|
+
setGPS(longitude: number, latitude: number): void;
|
|
147
|
+
/** 云机/本地键盘切换(false-云机键盘,true-本地键盘) */
|
|
148
|
+
setKeyboardStyle(keyBoardType: string): void;
|
|
149
|
+
/** 查询输入状态 */
|
|
150
|
+
onCheckInputState(): Promise<void>;
|
|
151
|
+
/** 添加input输入框 */
|
|
152
|
+
addInputElement(): void;
|
|
153
|
+
/**
|
|
154
|
+
* 设置无操作回收时间
|
|
155
|
+
* @param second 秒 默认300s,最大7200s
|
|
156
|
+
*/
|
|
157
|
+
setAutoRecycleTime(second: number): void;
|
|
158
|
+
/** 获取无操作回收时间 */
|
|
159
|
+
getAutoRecycleTime(): any;
|
|
160
|
+
/** 底部栏操作按键 */
|
|
161
|
+
sendCommand(command: string): void;
|
|
162
|
+
/** 返回按键事件 */
|
|
163
|
+
goAppUpPage(): void;
|
|
164
|
+
/** 主页按键事件 */
|
|
165
|
+
goAppHome(): void;
|
|
166
|
+
/** 菜单按键事件 */
|
|
167
|
+
goAppMenu(): void;
|
|
168
|
+
/** 音量增加按键事件 */
|
|
169
|
+
increaseVolume(): void;
|
|
170
|
+
/** 音量减少按键事件 */
|
|
171
|
+
decreaseVolume(): void;
|
|
172
|
+
/**
|
|
173
|
+
* 是否接收粘贴板内容回调
|
|
174
|
+
* @param flag true:接收 false:不接收
|
|
175
|
+
*/
|
|
176
|
+
saveCloudClipboard(flag: boolean): void;
|
|
177
|
+
}
|
|
178
|
+
export default WebRTC;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 火山云RTC初始化参数
|
|
3
|
+
* @param appId
|
|
4
|
+
* @param roomCode rtc房间code
|
|
5
|
+
* @param roomToken rtc房间token
|
|
6
|
+
* @param clientId 远程云机id
|
|
7
|
+
* @param userId 用户id
|
|
8
|
+
* @param expirationTime 无操作回收时间 秒
|
|
9
|
+
* @param selfAdaption 渲染模式 1:自适应屏幕 2:填充屏幕
|
|
10
|
+
* @param mediaType 媒体流类型,1:只控制音频 2:只控制视频 3:同时控制音频和视频
|
|
11
|
+
* @param rotateType 旋转屏幕 type 1:横屏;2:竖屏
|
|
12
|
+
* @param definition 设置清晰度 1:标清 2:高清 3:超清
|
|
13
|
+
* @param useLocalKeyboard 是否启用本地输入法
|
|
14
|
+
* @param allowCopyRemoteToLocal 允许云机复制到真机
|
|
15
|
+
*/
|
|
16
|
+
export interface CloudCoreConfig {
|
|
17
|
+
appId: string;
|
|
18
|
+
roomCode: string;
|
|
19
|
+
roomToken: string;
|
|
20
|
+
clientId: string;
|
|
21
|
+
userId: string;
|
|
22
|
+
expirationTime?: number;
|
|
23
|
+
selfAdaption?: string | number;
|
|
24
|
+
mediaType?: string | number;
|
|
25
|
+
rotateType?: number;
|
|
26
|
+
definition?: string | number;
|
|
27
|
+
useLocalKeyboard?: boolean;
|
|
28
|
+
allowCopyRemoteToLocal?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 手指触摸配置参数
|
|
32
|
+
* @action 0 按下 1 抬起 2 触摸中
|
|
33
|
+
* @widthPixels 画布宽度
|
|
34
|
+
* @heightPixels 画布高度
|
|
35
|
+
* @pointCount 操作手指数量
|
|
36
|
+
* @touchType touchType: 'gesture'写死
|
|
37
|
+
* @properties 同时操控手指数组 手指id: 自定义;toolType: 1写死
|
|
38
|
+
* @coords 操作坐标 pressure: 1.0, size: 1.0,写死 x: x坐标;y:y坐标
|
|
39
|
+
*/
|
|
40
|
+
interface PropertiesInfo {
|
|
41
|
+
id: number;
|
|
42
|
+
toolType: number;
|
|
43
|
+
}
|
|
44
|
+
interface CoordsInfo {
|
|
45
|
+
mPackedAxisValues?: any;
|
|
46
|
+
pressure: number;
|
|
47
|
+
size: number;
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
}
|
|
51
|
+
export interface TouchConfig {
|
|
52
|
+
action: number | string;
|
|
53
|
+
widthPixels: number;
|
|
54
|
+
heightPixels: number;
|
|
55
|
+
pointCount: number;
|
|
56
|
+
touchType: string;
|
|
57
|
+
properties: PropertiesInfo[];
|
|
58
|
+
coords: CoordsInfo[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 自定义清晰度
|
|
62
|
+
* @definitionId 分辨率 7:144*256;8:216*384;9:288*512;10:360*640;11:480*848;12:540*960;13:600*1024;14:480*1280;15:720*1280;16:720*1920;17:1080*1920;18:1440*1920;19:1600*2560;20:2880*1080
|
|
63
|
+
* @framerateId 帧率 1:20fps;2:25fps;3:30fps;4:60fps;5:1fps;6:5fps;7:10fps;8:15fps;9:2fps
|
|
64
|
+
* @bitrateId 码率 1:1Mbps;2:1.5Mbps;3:2Mbps;4:2.5Mbps;5:3Mbps;6:3.5Mbps;7:4Mbps;8:5Mbps;9:6Mbps;10:8Mbps;11:10Mbps;12:12Mbps;13:200kbps;14:400kbps;15:600kbps
|
|
65
|
+
*/
|
|
66
|
+
export interface CustomDefinition {
|
|
67
|
+
definitionId: number | null;
|
|
68
|
+
framerateId: number | null;
|
|
69
|
+
bitrateId: number | null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 定位信息
|
|
73
|
+
* @accuracy 精度
|
|
74
|
+
* @altitude 海拔高度
|
|
75
|
+
* @latitude 纬度
|
|
76
|
+
* @longitude 经度
|
|
77
|
+
* @speed 速度
|
|
78
|
+
* @time 时间
|
|
79
|
+
*/
|
|
80
|
+
export interface PositionOption {
|
|
81
|
+
accuracy?: number | null;
|
|
82
|
+
altitude?: number | null;
|
|
83
|
+
latitude: number | null;
|
|
84
|
+
longitude: number | null;
|
|
85
|
+
speed?: number | null;
|
|
86
|
+
time?: number | null;
|
|
87
|
+
}
|
|
88
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "armcloud-rtc",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.cjs.js",
|
|
5
|
+
"module": "./dist/index.es.js",
|
|
6
|
+
"types": "dist/types/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"directories": {
|
|
11
|
+
"lib": "lib"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "rollup --config rollup.config.ts --configPlugin typescript"
|
|
15
|
+
},
|
|
16
|
+
"author": "ask",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"description": "",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@volcengine/rtc": "^4.61.2",
|
|
21
|
+
"axios": "^1.7.3",
|
|
22
|
+
"crypto-js": "^4.2.0",
|
|
23
|
+
"webrtc-adapter": "^9.0.1"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@babel/core": "^7.25.2",
|
|
27
|
+
"@babel/preset-env": "^7.25.3",
|
|
28
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
29
|
+
"@rollup/plugin-commonjs": "^26.0.1",
|
|
30
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
31
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
32
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
33
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
34
|
+
"tslib": "^2.6.3"
|
|
35
|
+
}
|
|
36
|
+
}
|