im-rtc-call-engine 1.0.0 → 2.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.
- package/dist/browserSignals.d.ts +27 -0
- package/dist/browserSignals.d.ts.map +1 -0
- package/dist/browserSignals.js +34 -0
- package/dist/browserSignals.js.map +1 -0
- package/dist/callGuards.d.ts +35 -0
- package/dist/callGuards.d.ts.map +1 -0
- package/dist/callGuards.js +66 -0
- package/dist/callGuards.js.map +1 -0
- package/dist/callHistory.d.ts +50 -0
- package/dist/callHistory.d.ts.map +1 -0
- package/dist/callHistory.js +100 -0
- package/dist/callHistory.js.map +1 -0
- package/dist/callOptions.d.ts +14 -0
- package/dist/callOptions.d.ts.map +1 -1
- package/dist/callOptions.js +21 -0
- package/dist/callOptions.js.map +1 -1
- package/dist/debugToken.d.ts +29 -0
- package/dist/debugToken.d.ts.map +1 -0
- package/dist/debugToken.js +73 -0
- package/dist/debugToken.js.map +1 -0
- package/dist/engine.d.ts +88 -60
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +141 -178
- package/dist/engine.js.map +1 -1
- package/dist/engineBus.d.ts.map +1 -1
- package/dist/engineBus.js +1 -0
- package/dist/engineBus.js.map +1 -1
- package/dist/engineSession.d.ts +49 -0
- package/dist/engineSession.d.ts.map +1 -0
- package/dist/engineSession.js +97 -0
- package/dist/engineSession.js.map +1 -0
- package/dist/events.d.ts +48 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -1
- package/dist/frameLoop.d.ts +48 -5
- package/dist/frameLoop.d.ts.map +1 -1
- package/dist/frameLoop.js +205 -29
- package/dist/frameLoop.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/media/captureStream.d.ts +9 -0
- package/dist/media/captureStream.d.ts.map +1 -0
- package/dist/media/captureStream.js +20 -0
- package/dist/media/captureStream.js.map +1 -0
- package/dist/media/engineMediaApi.d.ts +24 -3
- package/dist/media/engineMediaApi.d.ts.map +1 -1
- package/dist/media/engineMediaApi.js +63 -27
- package/dist/media/engineMediaApi.js.map +1 -1
- package/dist/media/mediaBridge.d.ts +6 -1
- package/dist/media/mediaBridge.d.ts.map +1 -1
- package/dist/media/mediaBridge.js +18 -1
- package/dist/media/mediaBridge.js.map +1 -1
- package/dist/media/remoteAudio.d.ts +65 -0
- package/dist/media/remoteAudio.d.ts.map +1 -0
- package/dist/media/remoteAudio.js +83 -0
- package/dist/media/remoteAudio.js.map +1 -0
- package/dist/media/videoSender.d.ts +21 -0
- package/dist/media/videoSender.d.ts.map +1 -0
- package/dist/media/videoSender.js +74 -0
- package/dist/media/videoSender.js.map +1 -0
- package/dist/media/viewRegistry.d.ts +11 -3
- package/dist/media/viewRegistry.d.ts.map +1 -1
- package/dist/media/viewRegistry.js +35 -5
- package/dist/media/viewRegistry.js.map +1 -1
- package/dist/media/webrtcAdapter.d.ts +0 -31
- package/dist/media/webrtcAdapter.d.ts.map +1 -1
- package/dist/media/webrtcAdapter.js +10 -88
- package/dist/media/webrtcAdapter.js.map +1 -1
- package/dist/signaling/connection.d.ts +36 -0
- package/dist/signaling/connection.d.ts.map +1 -1
- package/dist/signaling/connection.js +89 -2
- package/dist/signaling/connection.js.map +1 -1
- package/dist/signaling/enums.d.ts +15 -0
- package/dist/signaling/enums.d.ts.map +1 -1
- package/dist/signaling/enums.js +17 -0
- package/dist/signaling/enums.js.map +1 -1
- package/dist/signaling/envelope.d.ts +13 -1
- package/dist/signaling/envelope.d.ts.map +1 -1
- package/dist/signaling/envelope.js +15 -3
- package/dist/signaling/envelope.js.map +1 -1
- package/dist/signaling/frames.call.d.ts +14 -0
- package/dist/signaling/frames.call.d.ts.map +1 -1
- package/dist/signaling/frames.call.js +8 -0
- package/dist/signaling/frames.call.js.map +1 -1
- package/dist/signaling/frames.room.d.ts +6 -4
- package/dist/signaling/frames.room.d.ts.map +1 -1
- package/dist/signaling/frames.room.js +10 -4
- package/dist/signaling/frames.room.js.map +1 -1
- package/dist/signaling/frames.sys.d.ts +5 -1
- package/dist/signaling/frames.sys.d.ts.map +1 -1
- package/dist/signaling/frames.sys.js +5 -1
- package/dist/signaling/frames.sys.js.map +1 -1
- package/dist/signaling/heartbeat.js +1 -1
- package/dist/signaling/heartbeat.js.map +1 -1
- package/dist/signaling/networkProbe.d.ts +31 -0
- package/dist/signaling/networkProbe.d.ts.map +1 -0
- package/dist/signaling/networkProbe.js +47 -0
- package/dist/signaling/networkProbe.js.map +1 -0
- package/dist/signaling/oneShotTimer.d.ts +30 -0
- package/dist/signaling/oneShotTimer.d.ts.map +1 -0
- package/dist/signaling/oneShotTimer.js +44 -0
- package/dist/signaling/oneShotTimer.js.map +1 -0
- package/dist/signaling/reconnector.d.ts +17 -1
- package/dist/signaling/reconnector.d.ts.map +1 -1
- package/dist/signaling/reconnector.js +48 -14
- package/dist/signaling/reconnector.js.map +1 -1
- package/dist/signaling/resumeDeadline.d.ts +1 -1
- package/dist/signaling/resumeDeadline.d.ts.map +1 -1
- package/dist/signaling/resumeDeadline.js +7 -10
- package/dist/signaling/resumeDeadline.js.map +1 -1
- package/dist/state/callMachine.d.ts +7 -0
- package/dist/state/callMachine.d.ts.map +1 -1
- package/dist/state/callMachine.js +16 -7
- package/dist/state/callMachine.js.map +1 -1
- package/dist/state/callRecv.d.ts.map +1 -1
- package/dist/state/callRecv.js +9 -1
- package/dist/state/callRecv.js.map +1 -1
- package/dist/state/engineMachine.d.ts.map +1 -1
- package/dist/state/engineMachine.js +26 -6
- package/dist/state/engineMachine.js.map +1 -1
- package/dist/state/roomMachine.d.ts +10 -2
- package/dist/state/roomMachine.d.ts.map +1 -1
- package/dist/state/roomMachine.js +87 -15
- package/dist/state/roomMachine.js.map +1 -1
- package/dist/state/roomPaging.d.ts +81 -0
- package/dist/state/roomPaging.d.ts.map +1 -0
- package/dist/state/roomPaging.js +202 -0
- package/dist/state/roomPaging.js.map +1 -0
- package/dist/state/roomRecv.d.ts.map +1 -1
- package/dist/state/roomRecv.js +17 -7
- package/dist/state/roomRecv.js.map +1 -1
- package/dist/state/types.d.ts +12 -0
- package/dist/state/types.d.ts.map +1 -1
- package/dist/state/types.js.map +1 -1
- package/dist/state/unsubscribeTimers.d.ts +29 -0
- package/dist/state/unsubscribeTimers.d.ts.map +1 -0
- package/dist/state/unsubscribeTimers.js +55 -0
- package/dist/state/unsubscribeTimers.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/engine.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { CallHistoryPage, FetchCallHistoryOptions } from './callHistory.js';
|
|
1
2
|
import type { CallOptions } from './callOptions.js';
|
|
2
3
|
import type { EngineEventHandler, EngineEventName } from './events.js';
|
|
3
4
|
import type { MediaAdapter } from './media/mediaAdapter.js';
|
|
4
5
|
import type { ViewElement } from './media/viewRegistry.js';
|
|
5
6
|
import type { VideoProfile } from './media/videoProfile.js';
|
|
6
7
|
import type { HelloOk } from './signaling/connection.js';
|
|
7
|
-
import type { Layer, MediaType } from './signaling/enums.js';
|
|
8
|
+
import type { AutoSubscribeMode, Layer, MediaType } from './signaling/enums.js';
|
|
8
9
|
import type { WebSocketFactory } from './signaling/webSocket.js';
|
|
9
10
|
import type { EngineContext } from './state/engineMachine.js';
|
|
10
11
|
/**
|
|
@@ -38,19 +39,28 @@ export interface EngineOptions {
|
|
|
38
39
|
videoProfile?: VideoProfile;
|
|
39
40
|
}
|
|
40
41
|
export type { CallOptions } from './callOptions.js';
|
|
41
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* CallEngine 是宿主唯一需要接触的类型。
|
|
44
|
+
*
|
|
45
|
+
* # 方法的结果回给调用方(2.0.0)
|
|
46
|
+
*
|
|
47
|
+
* 发请求的方法(`login` / `call` / `joinCall` / `accept` / `reject` / `cancel` / `hangup` /
|
|
48
|
+
* `inviteMore` / `joinRoom` / `leaveRoom` / `publish*` / `open*` / `setMuted`)返回的 Promise
|
|
49
|
+
* **在这次调用直接发出的那一帧收到应答时 resolve**,被本地拒绝、被服务端拒绝、超时、没连接时
|
|
50
|
+
* **reject 一个 `RtcError`**——这个错误**不再**同时发 `error` 事件。引擎随后自动发的连锁帧
|
|
51
|
+
* (接听之后的进房等)失败找不到调用方,才走 `error` 事件。
|
|
52
|
+
*
|
|
53
|
+
* 通话 / 房间因此收场时 `callEnd(error)` / `roomLeft` 照发:**界面收起靠事件,catch 里只做提示**。
|
|
54
|
+
* 退出类(`reject` / `cancel` / `hangup` / `leaveRoom`)失败时本地照样收场,错误只供日志。
|
|
55
|
+
* 规则全文见 server `docs/design/ACTION_RESULT_DESIGN.md`。
|
|
56
|
+
*/
|
|
42
57
|
export declare class CallEngine {
|
|
43
58
|
private readonly bus;
|
|
44
59
|
private readonly bridge;
|
|
45
60
|
private readonly media;
|
|
46
|
-
private readonly
|
|
61
|
+
private readonly session;
|
|
47
62
|
private readonly sender;
|
|
48
|
-
private connection;
|
|
49
|
-
/** 握手拿到的自己的 uid。用来挡「呼叫自己」,也供宿主读。 */
|
|
50
|
-
private myUid;
|
|
51
63
|
private readonly loop;
|
|
52
|
-
/** 最近一次 hello.ok 喂进状态机的那个 promise,`login()` 要等它。 */
|
|
53
|
-
private helloApplied;
|
|
54
64
|
/** 终态销毁标记。见 {@link destroy}。 */
|
|
55
65
|
private destroyed;
|
|
56
66
|
constructor(options: EngineOptions);
|
|
@@ -100,6 +110,21 @@ export declare class CallEngine {
|
|
|
100
110
|
* 连上着的时候调它也是安全的(比如票快过期了提前换)——当前连接不受影响。
|
|
101
111
|
*/
|
|
102
112
|
updateToken(token: string, expiresAtMs?: number): void;
|
|
113
|
+
/**
|
|
114
|
+
* fetchCallHistory 查自己的通话记录,按发起时间倒序,**游标翻页**。
|
|
115
|
+
*
|
|
116
|
+
* **必须已登录**(用登录那枚票),否则 reject `2007`;票被拒 `1101`;网络不通 `2003`。
|
|
117
|
+
* 返回的 `nextCursor` 为 `null` 表示已到底,否则传给下一次的 `cursor`。
|
|
118
|
+
* 服务端只返回本人参与过的通话,所以没有 `uid` 参数。宿主也可以不用它,自己拿 `callEnd` 存。
|
|
119
|
+
*/
|
|
120
|
+
fetchCallHistory(options?: FetchCallHistoryOptions): Promise<CallHistoryPage>;
|
|
121
|
+
/**
|
|
122
|
+
* setAppForeground / notifyNetworkChanged:告诉 engine 页面回到前台、网络变了——断线后**不再按退避白等**
|
|
123
|
+
* (正等着重连的立刻连、连着的探 3 秒)。**浏览器里不用调**:登录后 engine 自己听 `visibilitychange` /
|
|
124
|
+
* `online` / `navigator.connection`(`browserSignals.ts`)。给 WebView 宿主等拿得到原生信号的场景用。提示类,销毁后空操作。
|
|
125
|
+
*/
|
|
126
|
+
setAppForeground(foreground: boolean): void;
|
|
127
|
+
notifyNetworkChanged(): void;
|
|
103
128
|
/** logout 关掉连接与媒体。 */
|
|
104
129
|
logout(): void;
|
|
105
130
|
/**
|
|
@@ -109,15 +134,16 @@ export declare class CallEngine {
|
|
|
109
134
|
* # 之后再调别的方法
|
|
110
135
|
*
|
|
111
136
|
* 会发起动作的方法(`login` / `call` / `accept` / … / `publishMicrophone` / `openCamera` 等,
|
|
112
|
-
* 经 {@link act} 或 {@link mediaApi}
|
|
137
|
+
* 经 {@link act} 或 {@link mediaApi} 转发的那一批)一律**reject `2005 invalid_state`**,
|
|
113
138
|
* 不是静默空操作:事件订阅已经清空,静默的话宿主的 `hangup()` 之类调用会石沉大海——
|
|
114
139
|
* 不抛错也不会有任何事件把原因告诉它,界面只会永远停在转圈。与 `login()` 拦
|
|
115
140
|
* 「已经登录了」同一个理由:让宿主一调就知道错在哪,不用猜。
|
|
116
141
|
*
|
|
117
|
-
* `logout()` / `forceEnd()` / `on()` / `uid` / `state
|
|
118
|
-
* (`attachView`
|
|
119
|
-
* `updateToken`)**不受影响**,销毁后调用仍然安全——宿主卸载时经常无脑清理这几个,
|
|
120
|
-
*
|
|
142
|
+
* `logout()` / `forceEnd()` / `on()` / `uid` / `state`,以及读、清理、提示类的方法
|
|
143
|
+
* (`attachView` / `attachLocalView`、`localTrack`、`stopLocalPreview`、`closeMicrophone` /
|
|
144
|
+
* `closeCamera`、`updateToken`、`setAppForeground` / `notifyNetworkChanged`、`setRemoteLayer`)**不受影响**,销毁后调用仍然安全——宿主卸载时经常无脑清理这几个,
|
|
145
|
+
* 不该因为清理顺序先后而报错。逐个方法的归类由 `test/destroyContract.test.ts` 钉住,
|
|
146
|
+
* 新增公开方法不归类那张表就红;与 iOS / Android 的对照见 server `docs/CLIENT_PARITY.md`。
|
|
121
147
|
*/
|
|
122
148
|
destroy(): void;
|
|
123
149
|
/**
|
|
@@ -125,34 +151,46 @@ export declare class CallEngine {
|
|
|
125
151
|
*/
|
|
126
152
|
private assertNotDestroyed;
|
|
127
153
|
/**
|
|
128
|
-
* act
|
|
154
|
+
* act 是「发一个业务动作、等这次调用的结果」的公共外壳:`call` / `accept` / `reject` / `cancel` /
|
|
129
155
|
* `hangup` / `inviteMore` / `joinCall` / `joinRoom` / `leaveRoom` 共用,唯一的区别只是
|
|
130
156
|
* op 名与参数。抽出来顺带把 {@link assertNotDestroyed} 的检查收在一处。
|
|
157
|
+
* 结算规则见 `FrameLoop.request`。
|
|
131
158
|
*/
|
|
132
159
|
private act;
|
|
133
160
|
/**
|
|
134
|
-
* call
|
|
161
|
+
* call 发起通话,**resolve 服务端分配的 `callId`**(取自 `call.invite.ok`)。
|
|
162
|
+
* **名单里不能有自己**,见 `callGuards.ts` 的 `rejectsSelf`。
|
|
135
163
|
*
|
|
136
164
|
* `options` 传布尔值等同旧的 `isGroup` 参数(三参数签名保持兼容);传 {@link CallOptions}
|
|
137
165
|
* 可以带上群号 / user_data / 振铃超时(HOST_INTEGRATION_DESIGN §3.3)。
|
|
166
|
+
* 群号 / user_data 超限同样本地拒掉(reject `1004`),见 `callGuards.ts`。
|
|
167
|
+
*
|
|
168
|
+
* 被拒(本地 `1004` / 服务端拒绝 / 超时)时 reject,**并且照发一次 `callEnd(error)`**——
|
|
169
|
+
* 界面在调用之前就切到了「正在呼叫…」,收起它靠那个事件。
|
|
170
|
+
*
|
|
171
|
+
* 这两道本地关卡**只在 `idle` 时**抢在状态机前面拦:`callEnd(error)` 假定界面刚乐观地进了
|
|
172
|
+
* 「正在呼叫…」。不是 `idle`(这通 `call()` 其实是在另一通电话进行中时误调的,比如名单里
|
|
173
|
+
* 误含自己)时抢先 reject 只会给**正在进行的**那通电话发一条假的 `callEnd`,把它错杀——
|
|
174
|
+
* 让状态机去拒,按 §5.1 正常收成 `2005`,不碰当前那通。
|
|
138
175
|
*/
|
|
139
|
-
call(calleeIds: string[], mediaType: MediaType, options?: boolean | CallOptions): Promise<
|
|
176
|
+
call(calleeIds: string[], mediaType: MediaType, options?: boolean | CallOptions): Promise<string>;
|
|
140
177
|
/**
|
|
141
178
|
* joinCall 是「群成员看到『进行中』主动加入」(协议 §4.1 `call.join`)。
|
|
142
179
|
*
|
|
143
180
|
* **「怎么知道有通话在进行中」不是 engine 的事**——宿主拿 webhook `call.started`
|
|
144
181
|
* 或后台 `GET /v1/calls?chat_group_id=...&active=1` 自己判断、自己摆横幅。
|
|
145
|
-
*
|
|
146
|
-
*
|
|
182
|
+
* **resolve = 服务端受理了(`call.join.ok`)**,接通事件随后到。服务端拒绝(`1401` 不存在 /
|
|
183
|
+
* `1402` 已结束 / `1202` 满员 / `1408` 本人已在通话中 / `1409` 宿主邀请鉴权回调拒绝)时 reject 那个码,
|
|
184
|
+
* 同时照发 `callEnd(error)`(状态机已经进了 `accepting`,界面收起靠它)。
|
|
147
185
|
*/
|
|
148
186
|
joinCall(callId: string): Promise<void>;
|
|
149
187
|
/** accept 接听。 */
|
|
150
188
|
accept(): Promise<void>;
|
|
151
|
-
/** reject
|
|
189
|
+
/** reject 拒接。失败(通话已结束等)时本地照样收场,错误只供日志。 */
|
|
152
190
|
reject(): Promise<void>;
|
|
153
|
-
/** cancel 取消呼出(**仅接通前**;接通后用 hangup
|
|
191
|
+
/** cancel 取消呼出(**仅接通前**;接通后用 hangup)。失败时本地照样收场,错误只供日志。 */
|
|
154
192
|
cancel(): Promise<void>;
|
|
155
|
-
/** hangup
|
|
193
|
+
/** hangup 挂断(接通后,主被叫都用它)。失败时本地照样收场(`callEnd` 照发),错误只供日志。 */
|
|
156
194
|
hangup(): Promise<void>;
|
|
157
195
|
/**
|
|
158
196
|
* forceEnd 强制结束当前这一场:**结束帧立刻上线路,本地立刻收场,不等服务端**(设计文档 §7.5,五端同名)。
|
|
@@ -175,16 +213,17 @@ export declare class CallEngine {
|
|
|
175
213
|
forceEnd(): void;
|
|
176
214
|
/**
|
|
177
215
|
* inviteMore 往进行中的群通话里再拉人(协议 §4.1 `call.invite_more`)。
|
|
178
|
-
* 名单里同样不能有自己,见
|
|
216
|
+
* 名单里同样不能有自己,见 `callGuards.ts` 的 `rejectsSelf`。
|
|
179
217
|
*
|
|
180
218
|
* **通话里的任何人都能发**(2026-09-15 起,原先仅主叫);还在响铃 / 已离场的人发会被服务端拒成
|
|
181
219
|
* `1407 not_call_owner`(交互稿 §05)。房间满了回 `1202 room_full`;离场的发起人也能被重新邀请。
|
|
220
|
+
* 这些都 reject 给调用方,通话本身不受影响。
|
|
182
221
|
*/
|
|
183
222
|
inviteMore(calleeIds: string[]): Promise<void>;
|
|
184
223
|
/**
|
|
185
224
|
* probeMicrophone 在拨出 / 接听**之前**探一下麦克风权限(交互稿 §01)。
|
|
186
225
|
*
|
|
187
|
-
*
|
|
226
|
+
* 拿到就放掉,不占设备;被拒 reject `2001`、没设备 reject `2002`(不发 `error` 事件)。
|
|
188
227
|
*/
|
|
189
228
|
probeMicrophone(): Promise<void>;
|
|
190
229
|
/**
|
|
@@ -194,27 +233,34 @@ export declare class CallEngine {
|
|
|
194
233
|
* 拿预览去探会把摄像头真的打开。要看见自己另调 `startLocalPreview`。
|
|
195
234
|
*/
|
|
196
235
|
probeCamera(): Promise<void>;
|
|
197
|
-
/**
|
|
198
|
-
|
|
199
|
-
|
|
236
|
+
/**
|
|
237
|
+
* joinRoom 直接进一个会议房(不走振铃)。
|
|
238
|
+
*
|
|
239
|
+
* `autoSubscribe` 是服务端替你自动订多少(协议 §3.1,2.0.0 起是三档):
|
|
240
|
+
* - `'all'`(默认)音视频全自动订上,通话房与小会议用它;
|
|
241
|
+
* - `'audio'` **会议分页画廊用这一档**:音频照旧自动订上(页外的人说话也听得见),
|
|
242
|
+
* 视频一条都不自动订,由 `setRemoteLayer(uid, layer)` 按当前页订与退
|
|
243
|
+
* (`none` = 五秒后退订,见 MEETING_ROOM_DESIGN §4.3);
|
|
244
|
+
* - `'none'` 一条都不自动订,全部由宿主自己订。
|
|
245
|
+
*/
|
|
246
|
+
joinRoom(roomId: string, roomToken: string, autoSubscribe?: AutoSubscribeMode): Promise<void>;
|
|
247
|
+
/** leaveRoom 离房。失败时本地照样收场(`roomLeft` 照发),错误只供日志。 */
|
|
200
248
|
leaveRoom(): Promise<void>;
|
|
201
249
|
/** publishMicrophone 发布麦克风,返回轨道的 cid。 */
|
|
202
250
|
publishMicrophone(): Promise<string>;
|
|
203
251
|
/**
|
|
204
252
|
* openMicrophone 是麦克风开关的**按类型**便捷接口(与腾讯 TUICallEngine 同名)。
|
|
205
253
|
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* 「发没发布过」问的是**媒体适配器自己的账**(`media.publishedMicrophoneCid()`),
|
|
210
|
-
* 不在门面另开一份:宿主先直接调 `publishMicrophone()` 发布过、再调这个方法的话,
|
|
211
|
-
* 门面自己那份账不知道已经发布过,会误判成「没发布」再发一次(2026-09-15 iOS 踩过)。
|
|
254
|
+
* 还没发布过就发布(等价 `publishMicrophone()`);已经发布了就取消静音,**不会重新发布**。
|
|
255
|
+
* 「发布过没有」问媒体适配器自己的账,与先调过 `publishMicrophone()` 混用也不会发两次。
|
|
212
256
|
* `publishMicrophone()` / `setMuted(cid)` 仍然保留,给需要自己管 cid 的宿主用。
|
|
213
257
|
*/
|
|
214
258
|
openMicrophone(): Promise<void>;
|
|
215
259
|
/**
|
|
216
260
|
* closeMicrophone 关麦克风:对已发布的那条轨道 `setMuted(cid, true)`——**不 unpublish**,
|
|
217
|
-
*
|
|
261
|
+
* 协商保留。没发布过、或 engine 已销毁,是空操作(清理类,见 {@link destroy})。
|
|
262
|
+
*
|
|
263
|
+
* **永不 reject**:本端立即静音;`room.mute` 帧被拒不回滚本端(隐私优先),错误走 `error` 事件。
|
|
218
264
|
*/
|
|
219
265
|
closeMicrophone(): Promise<void>;
|
|
220
266
|
/**
|
|
@@ -235,15 +281,15 @@ export declare class CallEngine {
|
|
|
235
281
|
/** publishCamera 发布摄像头。已经在预览的话复用那条轨道。 */
|
|
236
282
|
publishCamera(simulcast?: boolean): Promise<string>;
|
|
237
283
|
/**
|
|
238
|
-
* openCamera
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
* 「发没发布过」同样问媒体适配器自己的账(`media.publishedCameraCid()`),
|
|
243
|
-
* 理由见 {@link openMicrophone}。
|
|
284
|
+
* openCamera 是摄像头开关的**按类型**便捷接口。还没发布就发布(有本端预览时复用它);
|
|
285
|
+
* 已发布就取消静音——走 `setMuted` 的「关停采集、开重新采集换 sender」语义,不重新协商。
|
|
286
|
+
* 不会重复发布,理由同 {@link openMicrophone}。
|
|
244
287
|
*/
|
|
245
288
|
openCamera(): Promise<void>;
|
|
246
|
-
/**
|
|
289
|
+
/**
|
|
290
|
+
* closeCamera 关摄像头:`setMuted(cid, true)`(停采集,指示灯灭;不 unpublish)。
|
|
291
|
+
* 没发布过、或 engine 已销毁,是空操作。永不 reject,理由同 {@link closeMicrophone}。
|
|
292
|
+
*/
|
|
247
293
|
closeCamera(): Promise<void>;
|
|
248
294
|
/**
|
|
249
295
|
* setMuted 开关本端某条轨道。**不是 unpublish**,协商保留。
|
|
@@ -267,28 +313,10 @@ export declare class CallEngine {
|
|
|
267
313
|
*
|
|
268
314
|
* 九宫格缩略图报 `l`、双击放大报 `h`。**不触发重协商**,也不保证立刻切——
|
|
269
315
|
* 服务端要等目标层的关键帧,还会再按带宽估计压一次。
|
|
270
|
-
*/
|
|
271
|
-
setRemoteLayer(uid: string, layer: Layer): Promise<void>;
|
|
272
|
-
/**
|
|
273
|
-
* rejectsSelf 挡住「名单里有自己」,就地报错并返回 true。
|
|
274
|
-
*
|
|
275
|
-
* 服务端会以 `1004 bad_params` 拒掉("callee_ids 不能含主叫自己"),但那条链路上的
|
|
276
|
-
* 失败很难看懂:界面已经乐观地进了「正在呼叫…」,而错误只是一条没头没尾的 1004。
|
|
277
|
-
* (实测撞过:Demo 的群呼默认名单里正好有登录的那个人。)
|
|
278
|
-
*
|
|
279
|
-
* **一份实现供 call 与 inviteMore 共用**——两处各写一遍的话,改了一处忘了另一处,
|
|
280
|
-
* 就又是一个「同一条规则在一处成立、另一处不成立」。
|
|
281
|
-
*/
|
|
282
|
-
private rejectsSelf;
|
|
283
|
-
/**
|
|
284
|
-
* rejectsBadCallOptions 挡住超限的 `chatGroupId` / `userData`,就地报错并返回 true。
|
|
285
316
|
*
|
|
286
|
-
*
|
|
287
|
-
* 错误只是一条没头没尾的 1004——与 {@link rejectsSelf} 同一个理由,本地先拦,
|
|
288
|
-
* 走同一个出口(HOST_INTEGRATION_DESIGN §3.3)。判断本身在 `callOptions.ts`
|
|
289
|
-
* (纯函数,直接单测);这里只管日志与出口这两件带副作用的事。
|
|
317
|
+
* 提示类:**永不 reject**,失败走 `error` 事件;engine 已销毁时是空操作。
|
|
290
318
|
*/
|
|
291
|
-
|
|
319
|
+
setRemoteLayer(uid: string, layer: Layer): Promise<void>;
|
|
292
320
|
/** mediaApi 是交给 media/engineMediaApi 那几个编排函数的一把依赖。 */
|
|
293
321
|
private mediaApi;
|
|
294
322
|
/**
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|