im-rtc-call-engine 1.0.0 → 2.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/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/frameLoop.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ErrorCode, RtcError } from './errors.js';
|
|
1
|
+
import { ErrorCode, RtcError, isRtcError } from './errors.js';
|
|
2
2
|
import { LogField, logger } from './logger.js';
|
|
3
3
|
import { addRemoteCandidate } from './media/mediaPlane.js';
|
|
4
4
|
import { CallEndReason } from './reasons.js';
|
|
@@ -6,6 +6,7 @@ import { toFrameProps } from './signaling/caseMapping.js';
|
|
|
6
6
|
import { lookupFrame } from './signaling/registry.js';
|
|
7
7
|
import { initialEngineContext, reduceEngine } from './state/engineMachine.js';
|
|
8
8
|
import { forceEnd as planForceEnd } from './state/forceEnd.js';
|
|
9
|
+
import { UnsubscribeTimers } from './state/unsubscribeTimers.js';
|
|
9
10
|
/**
|
|
10
11
|
* engine 的**核心循环**:输入喂进状态机 → 产出的帧发出去 → 应答再喂回来。
|
|
11
12
|
*
|
|
@@ -24,10 +25,31 @@ const LEAVE_CALLBACKS = new Set(['onCallEnd', 'onRoomLeft', 'onRoomClosed']);
|
|
|
24
25
|
const LATE_MEDIA_FRAMES = new Set(['room.ice_candidate', 'room.offer', 'room.answer']);
|
|
25
26
|
/** SLOW_REQUEST_MS:请求往返超过这么久记一条。正常是几十毫秒。 */
|
|
26
27
|
const SLOW_REQUEST_MS = 2_000;
|
|
28
|
+
/**
|
|
29
|
+
* UNANSWERED_CODES 是「这一问没能送到 / 没等到回话」的那几个码——**不是服务端的答复**。
|
|
30
|
+
*
|
|
31
|
+
* 与它们相对的是服务端真回了一个 `sys.error`(1xxx):那才叫被拒,重试救不回来。
|
|
32
|
+
* 这三个都只说明本端与服务端此刻不通,而连接回来之后同一问多半就成了,
|
|
33
|
+
* 所以 `room.publish` 走 `publish_deferred` 挂起等重连,而不是把整通电话收掉
|
|
34
|
+
* (见 `rollback`)。四端同一张表(iOS 的 `IMFrameLoop+Rollback.unansweredCodes`)。
|
|
35
|
+
*/
|
|
36
|
+
const UNANSWERED_CODES = new Set([
|
|
37
|
+
ErrorCode.networkUnreachable,
|
|
38
|
+
ErrorCode.signalingTimeout,
|
|
39
|
+
ErrorCode.notLoggedIn,
|
|
40
|
+
]);
|
|
27
41
|
/** FrameLoop 持有状态机快照,并驱动它。 */
|
|
28
42
|
export class FrameLoop {
|
|
29
43
|
deps;
|
|
30
44
|
ctx = initialEngineContext;
|
|
45
|
+
/** 会议房翻页退订的五秒迟滞(`state/roomPaging.ts`)。到点喂一个内部事件回状态机。 */
|
|
46
|
+
unsubscribeTimers = new UnsubscribeTimers((trackId) => {
|
|
47
|
+
void this.dispatch({
|
|
48
|
+
kind: 'internal',
|
|
49
|
+
name: 'unsubscribe_hysteresis_elapsed',
|
|
50
|
+
args: { track_id: trackId },
|
|
51
|
+
});
|
|
52
|
+
});
|
|
31
53
|
constructor(deps) {
|
|
32
54
|
this.deps = deps;
|
|
33
55
|
}
|
|
@@ -38,6 +60,7 @@ export class FrameLoop {
|
|
|
38
60
|
/** reset 把状态机归零(logout 用)。 */
|
|
39
61
|
reset() {
|
|
40
62
|
this.ctx = initialEngineContext;
|
|
63
|
+
this.unsubscribeTimers.clear();
|
|
41
64
|
}
|
|
42
65
|
/**
|
|
43
66
|
* handleIncoming 是**所有下行帧的唯一入口**——事件与应答都走它。
|
|
@@ -72,9 +95,31 @@ export class FrameLoop {
|
|
|
72
95
|
}
|
|
73
96
|
await this.dispatch({ kind: 'recv', type, data });
|
|
74
97
|
}
|
|
75
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* dispatch 把一个**找不到调用方**的输入喂进状态机(下行帧、内部事件、engine 自己发起的动作),
|
|
100
|
+
* 然后抛事件、发帧。**永不 reject**:帧失败转成 `error` 事件。
|
|
101
|
+
*/
|
|
76
102
|
async dispatch(input) {
|
|
77
|
-
await this.apply(reduceEngine(this.ctx, input), input);
|
|
103
|
+
await this.apply(reduceEngine(this.ctx, input), input, null);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* request 把一次**宿主调用**喂进状态机,并把结果交回调用方(ACTION_RESULT_DESIGN R1)。
|
|
107
|
+
*
|
|
108
|
+
* - 状态机就地拒绝 → reject 那个码(`2005` 等),不抛事件、不发帧;
|
|
109
|
+
* - 本步直接产出的帧被拒 / 超时 / 没连接 → reject 那个错误,**不再**发 `error` 事件(R3),
|
|
110
|
+
* 回滚照做——`onCallEnd(error)` 之类的状态事件照发(R4);
|
|
111
|
+
* - 否则 resolve 最后一帧的应答 data(`call` 从里面取 `call_id`)。本步没发帧(意图被缓存、
|
|
112
|
+
* 拨出中挂起的 cancel)时 resolve 空对象:调用已受理,之后的连锁帧失败走 `error` 事件(R2)。
|
|
113
|
+
*/
|
|
114
|
+
async request(input) {
|
|
115
|
+
const result = reduceEngine(this.ctx, input);
|
|
116
|
+
const settlement = { error: null, reply: {} };
|
|
117
|
+
await this.apply(result, input, settlement);
|
|
118
|
+
if (result.reject !== undefined)
|
|
119
|
+
throw new RtcError(result.reject.code);
|
|
120
|
+
if (settlement.error !== null)
|
|
121
|
+
throw settlement.error;
|
|
122
|
+
return settlement.reply;
|
|
78
123
|
}
|
|
79
124
|
/**
|
|
80
125
|
* forceEnd 强制收掉当前这一场:**先把结束帧直接交给信令连接,再在本地收场**(`CallEngine.forceEnd`)。
|
|
@@ -107,7 +152,18 @@ export class FrameLoop {
|
|
|
107
152
|
});
|
|
108
153
|
this.fireFrames(plan.send);
|
|
109
154
|
// 结束帧已经直发过了,这里只落状态与事件;apply 的同步前半段(记状态、关媒体、抛事件)当场跑完。
|
|
110
|
-
this.apply({ state: plan.state, send: [], emit: plan.emit }).catch((err) => this.deps.bus.emitError(err));
|
|
155
|
+
this.apply({ state: plan.state, send: [], emit: plan.emit }, undefined, null).catch((err) => this.deps.bus.emitError(err));
|
|
156
|
+
}
|
|
157
|
+
/** endLocally 按此刻状态本地收场(通话或会议),不发帧。已经收干净时什么都不做。 */
|
|
158
|
+
endLocally() {
|
|
159
|
+
const plan = planForceEnd(this.ctx, Date.now());
|
|
160
|
+
if (plan.emit.length === 0)
|
|
161
|
+
return;
|
|
162
|
+
logger.warn('结束帧失败,本地收场', {
|
|
163
|
+
[LogField.callId]: this.ctx.call.callId,
|
|
164
|
+
[LogField.roomId]: this.ctx.room.roomId,
|
|
165
|
+
});
|
|
166
|
+
this.apply({ state: plan.state, send: [], emit: plan.emit }, undefined, null).catch((err) => this.deps.bus.emitError(err));
|
|
111
167
|
}
|
|
112
168
|
/** fireFrames 把结束帧直接交给信令连接,不等应答。 */
|
|
113
169
|
fireFrames(frames) {
|
|
@@ -128,11 +184,14 @@ export class FrameLoop {
|
|
|
128
184
|
*
|
|
129
185
|
* **发帧之前的部分都是同步的**——`forceEnd` 靠这一点在调用返回前就把事件抛完。
|
|
130
186
|
*/
|
|
131
|
-
async apply(result, input) {
|
|
187
|
+
async apply(result, input, settlement) {
|
|
132
188
|
const { bus, bridge } = this.deps;
|
|
189
|
+
const endingCall = this.ctx.call;
|
|
133
190
|
this.ctx = result.state;
|
|
134
191
|
// 认领新到的远端轨道,**并把状态机里已经没有的那些摘掉**(见 syncRemoteTracks)。
|
|
135
192
|
bridge.syncRemoteTracks(this.ctx.room.remoteTracks);
|
|
193
|
+
// 翻页退订的定时器**每轮对账一次**,不在各条来路上各排各撤(见 UnsubscribeTimers)。
|
|
194
|
+
this.unsubscribeTimers.sync(this.ctx.room.pendingUnsubscribe);
|
|
136
195
|
// **一通结束就把媒体面归零**,在抛事件之前:宿主收到 onCallEnd 时
|
|
137
196
|
// engine 已经是干净的,下一通不会带着上一通的轨道去协商。
|
|
138
197
|
if (result.emit.some((event) => LEAVE_CALLBACKS.has(event.cb)))
|
|
@@ -148,7 +207,7 @@ export class FrameLoop {
|
|
|
148
207
|
就先收到了这通电话房间里的事件。
|
|
149
208
|
*/
|
|
150
209
|
if (input !== undefined)
|
|
151
|
-
this.logLocalReject(input, result
|
|
210
|
+
this.logLocalReject(input, result);
|
|
152
211
|
for (const event of result.emit) {
|
|
153
212
|
/*
|
|
154
213
|
**`onDisconnected` 由连接层独占**,状态机那一份不往外发。
|
|
@@ -174,6 +233,12 @@ export class FrameLoop {
|
|
|
174
233
|
if (event.cb === 'onKickedOut')
|
|
175
234
|
continue;
|
|
176
235
|
bus.emitMachine(event);
|
|
236
|
+
// 紧跟 onCallEnd、每通有上下文的电话恰好一次(通话记录设计 §4)。
|
|
237
|
+
if (event.cb === 'onCallEnd') {
|
|
238
|
+
const summary = callSummaryEvent(endingCall, event, this.deps.selfUid?.() ?? '');
|
|
239
|
+
if (summary !== null)
|
|
240
|
+
bus.emitMachine(summary);
|
|
241
|
+
}
|
|
177
242
|
}
|
|
178
243
|
/*
|
|
179
244
|
有人开了摄像头:等他的**新画面真的上屏**再抛一次 firstVideoFrame(见 `FirstFrameGate`)。
|
|
@@ -183,11 +248,16 @@ export class FrameLoop {
|
|
|
183
248
|
bridge.awaitFirstVideoFrame(uid, (trackId) => bus.emit('firstVideoFrame', { uid, trackId }));
|
|
184
249
|
}
|
|
185
250
|
for (const frame of result.send) {
|
|
186
|
-
await this.sendFrame(frame);
|
|
251
|
+
await this.sendFrame(frame, settlement);
|
|
187
252
|
}
|
|
188
253
|
}
|
|
189
|
-
/**
|
|
190
|
-
|
|
254
|
+
/**
|
|
255
|
+
* sendFrame 发一帧,并把应答喂回状态机。
|
|
256
|
+
*
|
|
257
|
+
* `settlement` 不为 null 时这一帧是宿主调用直接发出的:失败记进去交给调用方,不发 `error` 事件。
|
|
258
|
+
* 同一次调用发了几帧的,调用方拿第一个失败,其余的照旧走 `error` 事件——一个错误只报一次。
|
|
259
|
+
*/
|
|
260
|
+
async sendFrame(frame, settlement) {
|
|
191
261
|
const connection = this.deps.connection();
|
|
192
262
|
/*
|
|
193
263
|
**没有连接不是「什么都不做」,是一次失败。**
|
|
@@ -202,24 +272,49 @@ export class FrameLoop {
|
|
|
202
272
|
*/
|
|
203
273
|
if (connection === null) {
|
|
204
274
|
const err = new RtcError(ErrorCode.notLoggedIn, { forType: frame.type });
|
|
205
|
-
this.
|
|
206
|
-
await this.rollback(frame);
|
|
275
|
+
this.settleFailure(err, settlement);
|
|
276
|
+
await this.rollback(frame, err);
|
|
207
277
|
return;
|
|
208
278
|
}
|
|
209
279
|
const startedMs = Date.now();
|
|
280
|
+
let reply;
|
|
210
281
|
try {
|
|
211
|
-
|
|
212
|
-
noteSlowRequest(frame.type, startedMs, false);
|
|
213
|
-
// **应答也要喂回状态机**:join.ok / publish.ok 都是状态推进的关键一步。
|
|
214
|
-
if (reply !== null)
|
|
215
|
-
await this.handleIncoming(reply.type, reply.data);
|
|
282
|
+
reply = await this.deps.sender.send(connection, frame.type, frame.data);
|
|
216
283
|
}
|
|
217
284
|
catch (err) {
|
|
218
285
|
noteSlowRequest(frame.type, startedMs, true);
|
|
219
|
-
//
|
|
220
|
-
|
|
221
|
-
|
|
286
|
+
// 请求失败不该中断整个事件流:交给调用方,找不到调用方就转成 error 事件。
|
|
287
|
+
const wrapped = withForType(err, frame.type);
|
|
288
|
+
this.settleFailure(wrapped, settlement);
|
|
289
|
+
await this.rollback(frame, wrapped);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
noteSlowRequest(frame.type, startedMs, false);
|
|
293
|
+
if (reply === null)
|
|
294
|
+
return;
|
|
295
|
+
// **应答也要喂回状态机**:join.ok / publish.ok 都是状态推进的关键一步。
|
|
296
|
+
if (settlement === null) {
|
|
297
|
+
await this.handleIncoming(reply.type, reply.data);
|
|
298
|
+
return;
|
|
222
299
|
}
|
|
300
|
+
settlement.reply = reply.data;
|
|
301
|
+
/*
|
|
302
|
+
宿主调用直接发出的那一帧:**应答落进状态机就算结算完**,不等它连锁出来的帧(R2 / D1)。
|
|
303
|
+
|
|
304
|
+
`.ok` 在 `handleIncoming` 里没有 await 就进了 `apply`,状态与事件在这一行同步落地;
|
|
305
|
+
之后的连锁帧(publish.ok → pub offer → 等 answer,join.ok → 重放缓存的发布)有自己的出口
|
|
306
|
+
(`dispatch` → error 事件)。等它们的话,`publishMicrophone()` 要陪着 SDP 协商走完,
|
|
307
|
+
协商卡住还得多等一个请求超时——而那些失败本来就不算这次调用的。
|
|
308
|
+
*/
|
|
309
|
+
this.handleIncoming(reply.type, reply.data).catch((err) => this.deps.bus.emitError(err));
|
|
310
|
+
}
|
|
311
|
+
/** settleFailure 把一帧的失败交给调用方;没有调用方、或调用方已经拿到一个失败时发 error 事件。 */
|
|
312
|
+
settleFailure(err, settlement) {
|
|
313
|
+
if (settlement !== null && settlement.error === null) {
|
|
314
|
+
settlement.error = err;
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
this.deps.bus.emitError(err);
|
|
223
318
|
}
|
|
224
319
|
/**
|
|
225
320
|
* rollback 把「这一帧没送到」翻译成状态机能收场的内部事件。
|
|
@@ -228,8 +323,11 @@ export class FrameLoop {
|
|
|
228
323
|
* 而之后每一个动作都被不变量本地拒成 2005,宿主只看到一串没头没尾的 2005,
|
|
229
324
|
* 真正的原因早淹在上一条 error 里了。四端同一张表(Android 的
|
|
230
325
|
* `IMCallEngine.onRequestFailed`、iOS 的 `IMFrameLoop.sendFrame`)。
|
|
326
|
+
*
|
|
327
|
+
* `error` 是这一帧失败的真实原因,只有 `room.publish` 那一支要看它——
|
|
328
|
+
* 分清「服务端真回了拒绝」与「没等到应答」(见下面 `UNANSWERED_CODES`)。
|
|
231
329
|
*/
|
|
232
|
-
async rollback(frame) {
|
|
330
|
+
async rollback(frame, error) {
|
|
233
331
|
const { type } = frame;
|
|
234
332
|
/*
|
|
235
333
|
呼叫 / 接听 / 主动加入被拒都要退回 idle。
|
|
@@ -243,6 +341,16 @@ export class FrameLoop {
|
|
|
243
341
|
await this.dispatch({ kind: 'internal', name: 'call_failed' });
|
|
244
342
|
return;
|
|
245
343
|
}
|
|
344
|
+
/*
|
|
345
|
+
**退出类被拒也要本地收场**(ACTION_RESULT_DESIGN D2):用户按的是「结束」,服务端拒了
|
|
346
|
+
(最常见的是通话已经结束 1402 / 1401)或根本没发出去,都不该让界面停在通话里。
|
|
347
|
+
结束帧已经试过了,这里只落本地——与 `forceEnd` 同一份收场计算,只是不再发帧。
|
|
348
|
+
`room.leave` 被拒走下面那条 `leave_failed`。
|
|
349
|
+
*/
|
|
350
|
+
if (type === 'call.hangup' || type === 'call.reject' || type === 'call.cancel') {
|
|
351
|
+
this.endLocally();
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
246
354
|
/*
|
|
247
355
|
**进房失败要把房间状态退回 idle**。
|
|
248
356
|
|
|
@@ -264,6 +372,13 @@ export class FrameLoop {
|
|
|
264
372
|
*/
|
|
265
373
|
if (type === 'room.leave') {
|
|
266
374
|
await this.dispatch({ kind: 'internal', name: 'leave_failed' });
|
|
375
|
+
/*
|
|
376
|
+
等应答期间断线的话,房间机先收到 `disconnected` 从 `leaving` 进了 `reconnecting`,
|
|
377
|
+
`leave_failed` 就不认了——恢复之后人又回到房里,而宿主早就按了离开。
|
|
378
|
+
这一帧只可能是宿主要离房才发的,没有通话时照样本地收场(D2)。
|
|
379
|
+
*/
|
|
380
|
+
if (this.ctx.call.state === 'idle')
|
|
381
|
+
this.endLocally();
|
|
267
382
|
return;
|
|
268
383
|
}
|
|
269
384
|
/*
|
|
@@ -272,10 +387,32 @@ export class FrameLoop {
|
|
|
272
387
|
原先这张表不认 `room.publish`,那条轨道永远停在 `publishing`:publish.ok 不来 →
|
|
273
388
|
pub offer 永不产出 → 上行从未协商。界面显示已接通、计时器在走、按钮显示没静音,
|
|
274
389
|
**对方全程听不见看不见,零提示**。留在通话里只报错也不够——Kit 并不展示这类错误,
|
|
275
|
-
|
|
390
|
+
而服务端会拒的几种情形(房间已不在、同一路重复发布)重试都救不回来。
|
|
276
391
|
收场走 forceEnd:挂断帧不排队、callEnd 只抛一次,各端 Kit 本来就认它。
|
|
392
|
+
|
|
393
|
+
**但「没等到应答」不算被拒(2026-09-18 改)。** 原先这段把请求超时也算进
|
|
394
|
+
「重试救不回来」里,真机打了脸:18:18:39 `room.publish` 超时、整通被收成
|
|
395
|
+
`reason=error`,而**9 秒后连接就回来了、会话也在恢复窗口内 resume 成功**
|
|
396
|
+
(服务端 18:18:48「在恢复窗口内重连,取消离房」)。本来能接着打的一通被
|
|
397
|
+
我们自己判了死刑;更糟的是那时挂断帧也发不出去,服务端与对端完全不知道,
|
|
398
|
+
对面对着一个幽灵坐了 3 分钟才手动挂断。超时不是服务端的答复,只说明
|
|
399
|
+
「这一问没送到」,挂起来等重连即可(见 `roomMachine.ts` 的 `deferPublish`)。
|
|
400
|
+
真连不回来的话 `resumeDeadline.ts` 那条给它上限的倒计时照样会把通话收场
|
|
401
|
+
(走 `session_unrecoverable`),不需要这里抢在它前面下手。
|
|
402
|
+
|
|
403
|
+
**会议房同理**(没有通话、只在房里):原先这一支只对通话开放,会议房的超时
|
|
404
|
+
落到 `publish_failed`,这一路被悄悄摘掉、不重试、不通知宿主——信令抖一下
|
|
405
|
+
用户就静音或黑屏。恢复窗口的倒计时是连接层的,不分通话与会议。
|
|
277
406
|
*/
|
|
278
407
|
if (type === 'room.publish') {
|
|
408
|
+
if (UNANSWERED_CODES.has(error.code)) {
|
|
409
|
+
logger.warn('发布没等到应答,挂起等重连', {
|
|
410
|
+
[LogField.callId]: this.ctx.call.callId,
|
|
411
|
+
code: error.code,
|
|
412
|
+
});
|
|
413
|
+
await this.dispatch({ kind: 'internal', name: 'publish_deferred', args: frame.data });
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
279
416
|
if (this.ctx.call.state !== 'idle') {
|
|
280
417
|
logger.warn('发布被拒,结束本端通话', { [LogField.callId]: this.ctx.call.callId });
|
|
281
418
|
this.forceEnd(Date.now(), CallEndReason.error);
|
|
@@ -296,18 +433,15 @@ export class FrameLoop {
|
|
|
296
433
|
/**
|
|
297
434
|
* logLocalReject 把「状态机本地拒掉了一个动作」记成一条**说得清的**日志。
|
|
298
435
|
*
|
|
299
|
-
*
|
|
436
|
+
* 宿主拿到的错误只有 `code=2005 / invalid_state`——**哪个动作、当时什么状态,
|
|
300
437
|
* 一个字都没有**。三人会议那次排查就卡在这里:日志里十几条一模一样的 2005,
|
|
301
438
|
* 要读代码才能推出「点的是挂断、而会议里没有 call」。
|
|
302
439
|
*
|
|
303
|
-
*
|
|
304
|
-
*
|
|
440
|
+
* 不把这些塞进错误对象,是因为那是四端共用的公开形状;诊断信息进日志就够了。
|
|
441
|
+
* engine 自己发起的动作(`restart_pub_ice`)被拒时**只有**这一条日志。
|
|
305
442
|
*/
|
|
306
|
-
logLocalReject(input,
|
|
307
|
-
if (input.kind !== 'act')
|
|
308
|
-
return;
|
|
309
|
-
const rejected = emit.some((event) => event.cb === 'onError' && event.args['code'] === ErrorCode.invalidState);
|
|
310
|
-
if (!rejected)
|
|
443
|
+
logLocalReject(input, result) {
|
|
444
|
+
if (input.kind !== 'act' || result.reject === undefined)
|
|
311
445
|
return;
|
|
312
446
|
logger.warn('动作被状态机本地拒绝', {
|
|
313
447
|
op: input.op,
|
|
@@ -316,6 +450,18 @@ export class FrameLoop {
|
|
|
316
450
|
});
|
|
317
451
|
}
|
|
318
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* withForType 把发送层抛出来的东西收敛成带请求类型的 `RtcError`。
|
|
455
|
+
*
|
|
456
|
+
* 断线时在途请求一起被 reject 的那个错误(`networkUnreachable`)不知道自己是哪一帧的,这里补上——
|
|
457
|
+
* 调用方与 `error` 事件的 `forType` 都靠它。
|
|
458
|
+
*/
|
|
459
|
+
function withForType(err, type) {
|
|
460
|
+
if (isRtcError(err) && err.forType !== '')
|
|
461
|
+
return err;
|
|
462
|
+
const code = isRtcError(err) ? err.code : ErrorCode.internal;
|
|
463
|
+
return new RtcError(code, { forType: type, cause: err });
|
|
464
|
+
}
|
|
319
465
|
/**
|
|
320
466
|
* noteSlowRequest 记下「这一帧从交给 sender 到拿回应答」慢得不正常的那几次。
|
|
321
467
|
*
|
|
@@ -343,4 +489,34 @@ export function videoTurnedOn(emit) {
|
|
|
343
489
|
}
|
|
344
490
|
return uids;
|
|
345
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* callSummaryEvent 用结束前的通话上下文 + onCallEnd 的载荷拼 `onCallSummary`。
|
|
494
|
+
*
|
|
495
|
+
* 结束前没有通话,或这通电话还没拿到 call_id(本地就地拒掉 / 发不出去的 `call()`)返回 null:
|
|
496
|
+
* 服务端没有这通电话,宿主也没有 cid 可写进记录。
|
|
497
|
+
*/
|
|
498
|
+
export function callSummaryEvent(call, end, selfUid) {
|
|
499
|
+
if (call.state === 'idle')
|
|
500
|
+
return null;
|
|
501
|
+
const endedId = end.args['call_id'];
|
|
502
|
+
const callId = typeof endedId === 'string' && endedId !== '' ? endedId : call.callId;
|
|
503
|
+
if (callId === '')
|
|
504
|
+
return null;
|
|
505
|
+
return {
|
|
506
|
+
cb: 'onCallSummary',
|
|
507
|
+
args: {
|
|
508
|
+
call_id: callId,
|
|
509
|
+
reason: end.args['reason'],
|
|
510
|
+
duration_sec: end.args['duration_sec'],
|
|
511
|
+
ended_by: end.args['ended_by'],
|
|
512
|
+
media_type: call.mediaType,
|
|
513
|
+
is_group: call.isGroup,
|
|
514
|
+
chat_group_id: call.chatGroupId,
|
|
515
|
+
caller: call.callerUid !== '' ? call.callerUid : call.role === 'caller' ? selfUid : '',
|
|
516
|
+
role: call.role,
|
|
517
|
+
peer: call.peerUid,
|
|
518
|
+
user_data: call.userData,
|
|
519
|
+
},
|
|
520
|
+
};
|
|
521
|
+
}
|
|
346
522
|
//# sourceMappingURL=frameLoop.js.map
|
package/dist/frameLoop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameLoop.js","sourceRoot":"","sources":["../src/frameLoop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frameLoop.js","sourceRoot":"","sources":["../src/frameLoop.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* 状态机、WS 客户端、媒体适配器随后落地。
|
|
12
12
|
*/
|
|
13
13
|
export { SDK_VERSION } from './version.js';
|
|
14
|
+
export { generateDebugToken } from './debugToken.js';
|
|
15
|
+
export type { DebugTokenParams } from './debugToken.js';
|
|
16
|
+
export type { CallHistoryMember, CallHistoryPage, CallHistoryRecord, FetchCallHistoryOptions, } from './callHistory.js';
|
|
14
17
|
export { ERROR_DEFINITIONS, ErrorCode, RtcError, errorName, isLocalError, isRetryable, isRtcError, lookupError, } from './errors.js';
|
|
15
18
|
export type { ErrorCodeName, ErrorCodeValue, ErrorDefinition } from './errors.js';
|
|
16
19
|
/** 宿主可以自己先验一遍生成的 id,不必等到 login() / joinRoom() 才发现(协议 §2.5)。 */
|
|
@@ -19,11 +22,11 @@ export { CallEndReason, GROUP_DOMINANT_PRIORITY, callDurationSec, dominantReason
|
|
|
19
22
|
export type { CallEndReasonValue } from './reasons.js';
|
|
20
23
|
export { LogField, clearDiagnostics, exportDiagnostics, logger, redact, redactCandidate, redactSdp, setLogClock, setLogLevel, setLogSink, } from './logger.js';
|
|
21
24
|
export type { DiagnosticEntry, LogFields, LogLevel, LogSink } from './logger.js';
|
|
22
|
-
export { MAX_FRAME_BYTES, OK_SUFFIX, decodeEnvelope, encodeEnvelope, isEvent, okType, } from './signaling/envelope.js';
|
|
25
|
+
export { MAX_FRAME_BYTES, MAX_RECV_FRAME_BYTES, OK_SUFFIX, decodeEnvelope, encodeEnvelope, isEvent, okType, } from './signaling/envelope.js';
|
|
23
26
|
export type { Envelope } from './signaling/envelope.js';
|
|
24
27
|
export { checkDiscipline } from './signaling/discipline.js';
|
|
25
|
-
export { DEFAULT_TIMEOUT_SEC, LAYERS, MAX_TIMEOUT_SEC, MEDIA_TYPES, MIN_TIMEOUT_SEC, PC_ROLES, REASONS, ROOM_KINDS, TRACK_KINDS, TRACK_SOURCES, } from './signaling/enums.js';
|
|
26
|
-
export type { HandledAction, Layer, MediaType, PcRole, RoomKind, TrackKind, TrackSource, } from './signaling/enums.js';
|
|
28
|
+
export { AUTO_SUBSCRIBE_MODES, DEFAULT_TIMEOUT_SEC, LAYERS, MAX_TIMEOUT_SEC, MEDIA_TYPES, MIN_TIMEOUT_SEC, PC_ROLES, REASONS, ROOM_KINDS, TRACK_KINDS, TRACK_SOURCES, } from './signaling/enums.js';
|
|
29
|
+
export type { AutoSubscribeMode, HandledAction, Layer, MediaType, PcRole, RoomKind, TrackKind, TrackSource, } from './signaling/enums.js';
|
|
27
30
|
export { FrameType, REQUEST_TYPES, RESERVED_TYPES, decodeFrame, encodeFrame, isRequestType, isReservedType, knownFrameTypes, lookupFrame, newFrameData, } from './signaling/registry.js';
|
|
28
31
|
export type { FieldSpec, FrameData, FrameFields } from './signaling/fieldSpec.js';
|
|
29
32
|
export { BACKOFF_STEPS_MS, backoffDelayMs } from './signaling/backoff.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,14 +11,15 @@
|
|
|
11
11
|
* 状态机、WS 客户端、媒体适配器随后落地。
|
|
12
12
|
*/
|
|
13
13
|
export { SDK_VERSION } from './version.js';
|
|
14
|
+
export { generateDebugToken } from './debugToken.js';
|
|
14
15
|
export { ERROR_DEFINITIONS, ErrorCode, RtcError, errorName, isLocalError, isRetryable, isRtcError, lookupError, } from './errors.js';
|
|
15
16
|
/** 宿主可以自己先验一遍生成的 id,不必等到 login() / joinRoom() 才发现(协议 §2.5)。 */
|
|
16
17
|
export { checkDeviceId, checkRoomId } from './protocolId.js';
|
|
17
18
|
export { CallEndReason, GROUP_DOMINANT_PRIORITY, callDurationSec, dominantReason, normalizeReason, } from './reasons.js';
|
|
18
19
|
export { LogField, clearDiagnostics, exportDiagnostics, logger, redact, redactCandidate, redactSdp, setLogClock, setLogLevel, setLogSink, } from './logger.js';
|
|
19
|
-
export { MAX_FRAME_BYTES, OK_SUFFIX, decodeEnvelope, encodeEnvelope, isEvent, okType, } from './signaling/envelope.js';
|
|
20
|
+
export { MAX_FRAME_BYTES, MAX_RECV_FRAME_BYTES, OK_SUFFIX, decodeEnvelope, encodeEnvelope, isEvent, okType, } from './signaling/envelope.js';
|
|
20
21
|
export { checkDiscipline } from './signaling/discipline.js';
|
|
21
|
-
export { DEFAULT_TIMEOUT_SEC, LAYERS, MAX_TIMEOUT_SEC, MEDIA_TYPES, MIN_TIMEOUT_SEC, PC_ROLES, REASONS, ROOM_KINDS, TRACK_KINDS, TRACK_SOURCES, } from './signaling/enums.js';
|
|
22
|
+
export { AUTO_SUBSCRIBE_MODES, DEFAULT_TIMEOUT_SEC, LAYERS, MAX_TIMEOUT_SEC, MEDIA_TYPES, MIN_TIMEOUT_SEC, PC_ROLES, REASONS, ROOM_KINDS, TRACK_KINDS, TRACK_SOURCES, } from './signaling/enums.js';
|
|
22
23
|
export { FrameType, REQUEST_TYPES, RESERVED_TYPES, decodeFrame, encodeFrame, isRequestType, isReservedType, knownFrameTypes, lookupFrame, newFrameData, } from './signaling/registry.js';
|
|
23
24
|
export { BACKOFF_STEPS_MS, backoffDelayMs } from './signaling/backoff.js';
|
|
24
25
|
export { CloseCode, shouldReconnect } from './signaling/webSocket.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,eAAe,EACf,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,OAAO,EACP,MAAM,GACP,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,mBAAmB,EACnB,MAAM,EACN,eAAe,EACf,WAAW,EACX,eAAe,EACf,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAUrD,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,eAAe,EACf,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,cAAc,EACd,OAAO,EACP,MAAM,GACP,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,EACN,eAAe,EACf,WAAW,EACX,eAAe,EACf,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AASpE,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MediaSource } from './mediaAdapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* captureStream 向 `MediaSource` 取流,并把浏览器的异常收敛成结构化错误:
|
|
4
|
+
* 权限类(`NotAllowedError` / `SecurityError`)→ `2001`,其余一律当「没设备」→ `2002`。
|
|
5
|
+
*
|
|
6
|
+
* 界面怎么表现由 uikit 决定,**这里不弹 alert**(CONVENTIONS §8),只抛错。
|
|
7
|
+
*/
|
|
8
|
+
export declare function captureStream(source: MediaSource, constraints: MediaStreamConstraints): Promise<MediaStream>;
|
|
9
|
+
//# sourceMappingURL=captureStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureStream.d.ts","sourceRoot":"","sources":["../../src/media/captureStream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAOlH"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ErrorCode, RtcError } from '../errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* captureStream 向 `MediaSource` 取流,并把浏览器的异常收敛成结构化错误:
|
|
4
|
+
* 权限类(`NotAllowedError` / `SecurityError`)→ `2001`,其余一律当「没设备」→ `2002`。
|
|
5
|
+
*
|
|
6
|
+
* 界面怎么表现由 uikit 决定,**这里不弹 alert**(CONVENTIONS §8),只抛错。
|
|
7
|
+
*/
|
|
8
|
+
export async function captureStream(source, constraints) {
|
|
9
|
+
try {
|
|
10
|
+
return await source.getStream(constraints);
|
|
11
|
+
}
|
|
12
|
+
catch (cause) {
|
|
13
|
+
const code = isPermissionError(cause) ? ErrorCode.devicePermissionDenied : ErrorCode.deviceNotFound;
|
|
14
|
+
throw new RtcError(code, { cause });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function isPermissionError(cause) {
|
|
18
|
+
return cause instanceof Error && (cause.name === 'NotAllowedError' || cause.name === 'SecurityError');
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=captureStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureStream.js","sourceRoot":"","sources":["../../src/media/captureStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAmB,EAAE,WAAmC;IAC1F,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;QACpG,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;AACxG,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { EngineBus } from '../engineBus.js';
|
|
|
2
2
|
import type { FrameLoop } from '../frameLoop.js';
|
|
3
3
|
import type { Layer } from '../signaling/enums.js';
|
|
4
4
|
import type { MediaAdapter } from './mediaAdapter.js';
|
|
5
|
+
import type { MediaBridge } from './mediaBridge.js';
|
|
5
6
|
/**
|
|
6
7
|
* 门面那几个媒体方法的**方法体**。
|
|
7
8
|
*
|
|
@@ -15,10 +16,15 @@ export interface MediaApiDeps {
|
|
|
15
16
|
media: MediaAdapter;
|
|
16
17
|
loop: FrameLoop;
|
|
17
18
|
bus: EngineBus;
|
|
19
|
+
/** 本端轨道换了(关摄像头停采集 / 重新采集)之后,预览挂载要跟上。 */
|
|
20
|
+
bridge: MediaBridge;
|
|
18
21
|
}
|
|
19
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* 探麦克风。失败**只** reject,不再同时发 error 事件(2.0.0 起一次失败只从一个出口报,
|
|
24
|
+
* server `docs/design/ACTION_RESULT_DESIGN.md` R3)。宿主的契约见 CallEngine.probeMicrophone。
|
|
25
|
+
*/
|
|
20
26
|
export declare function probeMicrophone(d: MediaApiDeps): Promise<void>;
|
|
21
|
-
/** 探摄像头。与 probeMicrophone
|
|
27
|
+
/** 探摄像头。与 probeMicrophone 同一个契约。 */
|
|
22
28
|
export declare function probeCamera(d: MediaApiDeps): Promise<void>;
|
|
23
29
|
/**
|
|
24
30
|
* 发布麦克风。顺序是**先拿轨道再拿 cid**:浏览器不允许自定义 track.id,
|
|
@@ -35,6 +41,21 @@ export declare function publishCamera(d: MediaApiDeps, simulcast: boolean): Prom
|
|
|
35
41
|
* 关的时候本端也先停:帧要等 `room.mute.ok`,不能让指示灯多亮这一个来回。
|
|
36
42
|
*/
|
|
37
43
|
export declare function setMuted(d: MediaApiDeps, cid: string, muted: boolean): Promise<void>;
|
|
38
|
-
/**
|
|
44
|
+
/** LocalSource 是按类型开关的那两路本端轨道。 */
|
|
45
|
+
export type LocalSource = 'microphone' | 'camera';
|
|
46
|
+
/** 按类型开:没发布过就发布(摄像头有预览时复用),发布过就取消静音——**不会重复发布**。 */
|
|
47
|
+
export declare function openLocal(d: MediaApiDeps, source: LocalSource): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* 按类型关:已发布的那条 `setMuted(cid, true)`,**不 unpublish**;没发布过是空操作。
|
|
50
|
+
*
|
|
51
|
+
* 清理类,**永不 reject**:本端在发帧之前就已经静音,`room.mute` 被拒也不回滚本端(隐私优先),
|
|
52
|
+
* 错误走 error 事件。
|
|
53
|
+
*/
|
|
54
|
+
export declare function closeLocal(d: MediaApiDeps, source: LocalSource): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* 报某人画面的层上界。一个 uid 可能有多条视频轨道,逐条报。
|
|
57
|
+
*
|
|
58
|
+
* 提示类,**永不 reject**(界面每次换布局都调,失败宿主也无事可做):失败走 error 事件。
|
|
59
|
+
*/
|
|
39
60
|
export declare function setRemoteLayer(d: MediaApiDeps, uid: string, layer: Layer): Promise<void>;
|
|
40
61
|
//# sourceMappingURL=engineMediaApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engineMediaApi.d.ts","sourceRoot":"","sources":["../../src/media/engineMediaApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"engineMediaApi.d.ts","sourceRoot":"","sources":["../../src/media/engineMediaApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;GAOG;AAEH,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,oCAAoC;AACpC,wBAAsB,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxE;AAED,4DAA4D;AAC5D,wBAAsB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxF;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1F;AAED,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAUlD,oDAAoD;AACpD,wBAAsB,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F"}
|