CallHandleImpl class

一个通话的句柄(《sdk-web/3.接口设计》第 14 节,《sdk-web/2.功能概述文档》第 15 节)。 Flutter 没有多个标签页:媒体连接、心跳、令牌续期都在这个进程中;来电振铃和通话中保持后台连接(《2.功能概述文档》第 8 节)。

Implemented types

Constructors

CallHandleImpl(Core _core, CallsService _module, JsonMap call, String? _me)

Properties

callId → String
final
currentTracks → List<CallTrackEvent>
当前的轨道(按 media_uid 和种类,deeprespond_im_call 渲染画面时使用)。
no setter
data → Stream<CallDataMessage>
经媒体服务收到的数据消息。
no setteroverride
ended → bool
no setter
hashCode → int
The hash code for this object.
no setterinherited
holding → bool
正在连接或已经连上媒体。
no setter
mediaSession → MediaSession?
当前的媒体连接(deeprespond_im_call 用它切换摄像头、扬声器和渲染画面);没有为 null。
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
snapshot → CallSnapshot
当前快照,不可变。
no setteroverride
stream → Stream<CallSnapshot>
订阅时先发出当前快照,之后每次变化发出新快照;通话结束后不再变化。
no setteroverride
tracks → Stream<CallTrackEvent>
本地和远端的媒体轨道(轨道对象由媒体适配给出)。
no setteroverride

Methods

applyCall(JsonMap rawCall, {Object? self = absentArg, JsonMap? inviter, Object? group = absentArg, JsonMap? change}) → bool
应用快照,返回是否有变化:只应用版本号比本地大的(每个都是完整快照,版本号跳了也直接应用);给出 self 时总是应用。
attachMedia(JsonMap mediaJson, [int? heartbeatSeconds]) → Future<void>
连接媒体:按 media.provider 选择适配;连上后第一次心跳带 media_connected。
end() → Future<void>
结束群通话(发起人、群主、管理员);一对一等同挂断。
override
forceEnd() → void
本地有、服务端没有而又取不到详情的通话:按已结束处理。
hangup() → Future<void>
override
invite(List<String> usernames) → Future<List<CallInviteResult>>
按被邀请的人数计算额度,超出的人在结果中为 rate_limited,不重试。
override
join() → Future<void>
接听或加入;成功后连接媒体,打开麦克风(视频通话另打开摄像头)。得不到设备时以 permission_required、device_error 拒绝, 这时已经接听,App 引导授权后再调用 setMicrophoneEnabled、setCameraEnabled。
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reject({RejectReason reason = RejectReason.declined}) → Future<void>
override
resume() → Future<void>
App 被杀后重新打开(resumable):续期令牌、连接媒体。
override
sendData(List<int> data) → Future<void>
经媒体服务的数据消息(只供 App 使用)。
override
setCameraEnabled(bool on) → Future<void>
音频通话中打开摄像头以 invalid_state 拒绝(媒体凭据只允许发布麦克风)。
override
setMicrophoneEnabled(bool on) → Future<void>
override
teardown(bool isFinal) → Future<void>
断开媒体、停止心跳和续期;通话已结束(或 isFinal)的句柄结束:快照不再变化。
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited