产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
属性名 | 类型 | 描述 |
connected | 已经在麦位上的用户列表。 | |
invitees | 主播发出邀请的用户列表。 | |
applicants | 主播收到申请连麦的用户列表。 | |
candidates | 候选连麦的用户列表。 |
函数名 | 描述 |
创建对象实例。 | |
主播端事件发布者。 | |
观众端事件发布者。 | |
观众申请连麦。 | |
观众取消申请。 | |
主播接受申请。 | |
主播拒绝申请。 | |
主播邀请观众连麦。 | |
主播取消邀请。 | |
观众接受邀请。 | |
观众拒绝邀请。 | |
结束连麦会话。 |
public static func create(liveID: String) -> CoGuestStore {let store: CoGuestStoreImpl = StoreFactory.shared.getStore(liveId: liveID)return store}
参数名 | 类型 | 是否必填 | 描述 |
liveID | String | 必填 | 直播间ID。 |
public func applyForSeat(seatIndex: Int = -1, timeout: TimeInterval, extraInfo: String?, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
seatIndex | Int | 必填 | 麦位索引,-1 表示自动分配麦位。 |
timeout | TimeInterval | 必填 | 超时时间(单位:秒)。 |
extraInfo | String? | 必填 | 额外信息。 |
completion | 必填 | 完成回调。 |
public func cancelApplication(completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
completion | 必填 | 完成回调。 |
public func acceptApplication(userID: String, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
userID | String | 必填 | 用户 ID。 |
completion | 必填 | 完成回调。 |
public func rejectApplication(userID: String, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
userID | String | 必填 | 用户 ID。 |
completion | 必填 | 完成回调。 |
public func inviteToSeat(userID: String, seatIndex: Int = -1, timeout: TimeInterval, extraInfo: String?, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
userID | String | 必填 | 被邀请用户 ID。 |
seatIndex | Int | 必填 | 麦位索引,-1 表示自动分配麦位。 |
timeout | TimeInterval | 必填 | 超时时间(单位:秒)。 |
extraInfo | String? | 必填 | 额外信息。 |
completion | 必填 | 完成回调。 |
public func cancelInvitation(inviteeID: String, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
inviteeID | String | 必填 | 被邀请用户 ID。 |
completion | 必填 | 完成回调。 |
public func acceptInvitation(inviterID: String, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
inviterID | String | 必填 | 邀请者用户 ID。 |
completion | 必填 | 完成回调。 |
public func rejectInvitation(inviterID: String, completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
inviterID | String | 必填 | 邀请者用户 ID。 |
completion | 必填 | 完成回调。 |
public func disConnect(completion: CompletionClosure?) { fatalError("\\(#function) must be overridden by subclass") }
参数名 | 类型 | 是否必填 | 描述 |
completion | 必填 | 完成回调。 |
枚举值 | 值 | 说明 |
timeout | 0 | 请求超时。 |
alreadySeated | 1 | 用户已在麦位上。 |
枚举值 | 说明 |
onGuestApplicationReceived | 当观众申请连麦时触发此回调。 |
onGuestApplicationCancelled | 当观众取消连麦申请时触发此回调。 |
onGuestApplicationProcessedByOtherHost | 当观众的连麦申请被其他主播处理时触发此回调。 |
onHostInvitationResponded | 当主播发出的连麦邀请收到观众响应时触发此回调。 |
onHostInvitationNoResponse | 当主播发出的连麦邀请无响应时触发此回调。 |
枚举值 | 说明 |
onHostInvitationReceived | 当收到主播的连麦邀请时触发此回调。 |
onHostInvitationCancelled | 当主播取消连麦邀请时触发此回调。 |
onGuestApplicationResponded | 当观众的连麦申请收到主播响应时触发此回调。 |
onGuestApplicationNoResponse | 当观众的连麦申请无响应时触发此回调。 |
onKickedOffSeat | 当观众被主播踢下麦位时触发此回调。 |
属性 | 类型 | 说明 |
connected | 已经在麦位上的用户列表。 | |
invitees | 主播发出邀请的用户列表。 | |
applicants | 主播收到申请连麦的用户列表。 | |
candidates | 候选连麦的用户列表。 |
// 创建 store 实例let store = CoGuestStore.create(liveID: "live_room_123")// 订阅状态变化store.state.subscribe { state inprint("已连接用户: \\(state.connected.count)")print("待处理申请: \\(state.applicants.count)")}// 订阅主播事件(主播使用)store.hostEventPublisher.sink { event inswitch event {case .onGuestApplicationReceived(let guestUser):print("收到来自 \\(guestUser.userName) 的申请")// 显示接受/拒绝的 UIcase .onHostInvitationResponded(let isAccept, let guestUser):print("观众 \\(guestUser.userName) \\(isAccept ? "接受了" : "拒绝了")")default:break}}// 主播:接受申请store.acceptApplication(userID: "user_456") { code, message inif code == 0 {print("申请接受成功")}}
文档反馈