TRTCKaraokeRoom 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的组件,支持以下功能:
说明:TUIKit 系列组件同时使用了腾讯云 实时音视频 TRTC 和 即时通信 IM 两个基础 PaaS 服务,开通实时音视频后会同步开通即时通信IM服务。即时通信 IM 服务详细计费规则请参见 即时通信 - 价格说明,TRTC 开通会默认关联开通 IM SDK 的体验版,仅支持100个 DAU。
TRTCKaraokeRoom 是一个开源的 Class,依赖腾讯云的两个闭源 SDK,具体的实现过程请参见 Karaoke(iOS)。
API | 描述 |
---|---|
sharedInstance | 获取单例对象。 |
destroySharedInstance | 销毁单例对象。 |
setDelegate | 设置事件回调。 |
setDelegateQueue | 设置事件回调所在的线程。 |
login | 登录。 |
logout | 登出。 |
setSelfProfile | 修改个人信息。 |
API | 描述 |
---|---|
createRoom | 创建房间(房主调用),若房间不存在,系统将自动创建一个新房间。 |
destroyRoom | 销毁房间(房主调用)。 |
enterRoom | 进入房间(听众调用)。 |
exitRoom | 退出房间(听众调用)。 |
getRoomInfoList | 获取房间列表的详细信息。 |
getUserInfoList | 获取指定 userId 的用户信息,如果为 nil,则获取房间内所有人的信息。 |
API | 描述 |
---|---|
startPlayMusic | 开始播放音乐。 |
stopPlayMusic | 停止播放音乐。 |
pausePlayMusic | 暂停播放音乐。 |
resumePlayMusic | 恢复播放音乐。 |
API | 描述 |
---|---|
enterSeat | 主动上麦(听众端和房主均可调用)。 |
leaveSeat | 主动下麦(主播调用)。 |
pickSeat | 抱人上麦(房主调用)。 |
kickSeat | 踢人下麦(房主调用)。 |
muteSeat | 静音/解除静音某个麦位(房主调用)。 |
closeSeat | 封禁/解禁某个麦位(房主调用)。 |
API | 描述 |
---|---|
startMicrophone | 开启麦克风采集。 |
stopMicrophone | 停止麦克风采集。 |
setAudioQuality | 设置音质。 |
muteLocalAudio | 开启/关闭本地静音。 |
setSpeaker | 设置开启扬声器。 |
setAudioCaptureVolume | 设置麦克风采集音量。 |
setAudioPlayoutVolume | 设置播放音量。 |
setVoiceEarMonitorEnable | 开启/关闭 耳返。 |
API | 描述 |
---|---|
muteRemoteAudio | 静音/解除静音指定成员。 |
muteAllRemoteAudio | 静音/解除静音所有成员。 |
API | 描述 |
---|---|
getAudioEffectManager | 获取背景音乐音效管理对象 TXAudioEffectManager。 |
API | 描述 |
---|---|
sendRoomTextMsg | 在房间中广播文本消息,一般用于弹幕聊天。 |
sendRoomCustomMsg | 发送自定义文本消息。 |
API | 描述 |
---|---|
sendInvitation | 向用户发送邀请。 |
acceptInvitation | 接受邀请。 |
rejectInvitation | 拒绝邀请。 |
cancelInvitation | 取消邀请。 |
API | 描述 |
---|---|
onError | 错误回调。 |
onWarning | 警告回调。 |
onDebugLog | Log 回调。 |
API | 描述 |
---|---|
onRoomDestroy | 房间被销毁的回调。 |
onRoomInfoChange | 语聊房间信息变更回调。 |
onUserVolumeUpdate | 用户通话音量回调。 |
API | 描述 |
---|---|
onSeatListChange | 全量的麦位列表变化。 |
onAnchorEnterSeat | 有成员上麦(主动上麦/房主抱人上麦)。 |
onAnchorLeaveSeat | 有成员下麦(主动下麦/房主踢人下麦)。 |
onSeatMute | 房主禁麦。 |
onUserMicrophoneMute | 用户麦克风是否静音。 |
onSeatClose | 房主封麦。 |
API | 描述 |
---|---|
onAudienceEnter | 收到听众进房通知。 |
onAudienceExit | 收到听众退房通知。 |
API | 描述 |
---|---|
onRecvRoomTextMsg | 收到文本消息。 |
onRecvRoomCustomMsg | 收到自定义消息。 |
API | 描述 |
---|---|
onReceiveNewInvitation | 收到新的邀请请求。 |
onInviteeAccepted | 被邀请人接受邀请。 |
onInviteeRejected | 被邀请人拒绝邀请。 |
onInvitationCancelled | 邀请人取消邀请。 |
API | 描述 |
---|---|
onMusicProgressUpdate | 歌曲播放进度的回调。 |
onMusicPrepareToPlay | 准备播放音乐的回调。 |
onMusicCompletePlaying | 播放完成音乐的回调。 |
获取 TRTCKaraokeRoom 单例对象。
/**
* 获取 TRTCKaraokeRoom 单例对象
*
* - returns: TRTCKaraokeRoom 实例
* - note: 可以调用 {@link TRTCKaraokeRoom#destroySharedInstance()} 销毁单例对象
*/
+ (instancetype)sharedInstance NS_SWIFT_NAME(shared());
销毁 TRTCKaraokeRoom 单例对象。
说明:销毁实例后,外部缓存的 TRTCKaraokeRoom 实例无法再使用,需要重新调用 sharedInstance 获取新实例。
/**
* 销毁 TRTCKaraokeRoom 单例对象
*
* - note: 销毁实例后,外部缓存的 TRTCKaraokeRoom 实例不能再使用,需要重新调用 {@link TRTCKaraokeRoom#sharedInstance()} 获取新实例
*/
+ (void)destroySharedInstance NS_SWIFT_NAME(destroyShared());
TRTCKaraokeRoom 事件回调,您可以通过 TRTCKaraokeRoomDelegate 获得 TRTCKaraokeRoom 的各种状态通知。
/**
* 设置组件回调接口
*
* 您可以通过 TRTCKaraokeRoomDelegate 获得 TRTCKaraokeRoom 的各种状态通知
*
* - parameter delegate 回调接口
* - note: TRTCKaraokeRoom 中的回调事件,默认是在 Main Queue 中回调给您;如果您需要指定事件回调所在的队列,可使用 {@link TRTCKaraokeRoom#setDelegateQueue(queue)}
*/
- (void)setDelegate:(id<TRTCKaraokeRoomDelegate>)delegate NS_SWIFT_NAME(setDelegate(delegate:));
说明:setDelegate 是 TRTCKaraokeRoom 的代理回调。
设置事件回调所在的线程队列,默认发送动主线程 MainQueue 中。
/**
* 设置事件回调所在的队列
*
* - parameter queue 队列,TRTCKaraokeRoom 中的各种状态通知回调,会派发到您指定的queue。
*/
- (void)setDelegateQueue:(dispatch_queue_t)queue NS_SWIFT_NAME(setDelegateQueue(queue:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
queue | dispatch_queue_t | TRTCKaraokeRoom 中的各种状态通知,会派发到您指定的线程队列里去。 |
登录。
- (void)login:(int)sdkAppID
userId:(NSString *)userId
userSig:(NSString *)userSig
callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(login(sdkAppID:userId:userSig:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
sdkAppId | int | 您可以在实时音视频控制台 >【应用管理】> 应用信息中查看 SDKAppID。 |
userId | String | 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。 |
userSig | String | 腾讯云设计的一种安全保护签名,获取方式请参见 如何计算及使用 UserSig。 |
callback | ActionCallback | 登录回调,成功时 code 为0。 |
登出。
- (void)logout:(ActionCallback _Nullable)callback NS_SWIFT_NAME(logout(callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
callback | ActionCallback | 登出回调,成功时 code 为0。 |
修改个人信息。
- (void)setSelfProfile:(NSString *)userName avatarURL:(NSString *)avatarURL callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(setSelfProfile(userName:avatarURL:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userName | String | 昵称。 |
avatarURL | String | 头像地址。 |
callback | ActionCallback | 个人信息设置回调,成功时 code 为0。 |
创建房间(房主调用)。
- (void)createRoom:(int)roomID roomParam:(RoomParam *)roomParam callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(createRoom(roomID:roomParam:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
roomId | int | 房间标识,需要由您分配并进行统一管理。多个 roomID 可以汇总成一个语聊房间列表,腾讯云暂不提供语聊房间列表的管理服务,请自行管理您的语聊房间列表。 |
roomParam | TRTCCreateRoomParam | 房间信息,用于房间描述的信息。例如房间名称、麦位信息、封面信息等。如果需要麦位管理,必须要填入房间的麦位数。 |
callback | ActionCallback | 创建房间的结果回调,成功时 code 为0。 |
房主开播的正常调用流程如下:
createRoom
创建新的 Karaoke 房间,此时传入房间 ID、上麦是否需要房主确认、麦位数等房间属性信息。enterSeat
进入座位。onSeatListChange
麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。onAnchorEnterSeat
的事件通知,此时会自动打开麦克风采集。销毁房间(房主调用)。房主在创建房间后,可以调用这个函数来销毁房间。
- (void)destroyRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(destroyRoom(callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
callback | ActionCallback | 销毁房间的结果回调,成功时 code 为0。 |
进入房间(听众调用)。
- (void)enterRoom:(NSInteger)roomID callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(enterRoom(roomID:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
roomId | int | 房间标识。 |
callback | ActionCallback | 进入房间的结果回调,成功时 code 为0。 |
听众进房收听的正常调用流程如下:
enterRoom
并传入房间号即可进入该房间。onRoomInfoChange
房间属性变化事件通知,此时可以记录房间属性并做相应改变,例如 UI 展示房间名、记录上麦是否需要请求房主同意等。onSeatListChange
麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。onAnchorEnterSeat
的事件通知。退出房间。
- (void)exitRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(exitRoom(callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
callback | ActionCallback | 退出房间的结果回调,成功时 code 为0。 |
获取房间列表的详细信息,其中房间名称、房间封面是房主在创建 createRoom()
时通过 roomInfo 设置的。
说明:如果房间列表和房间信息都由您自行管理,可忽略该函数。
- (void)getRoomInfoList:(NSArray<NSNumber *> *)roomIdList callback:(KaraokeInfoCallback _Nullable)callback NS_SWIFT_NAME(getRoomInfoList(roomIdList:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
roomIdList | List<Integer> | 房间号列表。 |
callback | RoomInfoCallback | 房间详细信息回调。 |
获取指定 userId 的用户信息。
- (void)getUserInfoList:(NSArray<NSString *> * _Nullable)userIDList callback:(KaraokeUserListCallback _Nullable)callback NS_SWIFT_NAME(getUserInfoList(userIDList:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userIdList | List<String> | 需要获取的用户 ID 列表,如果为 null,则获取房间内所有人的信息。 |
userlistcallback | UserListCallback | 用户详细信息回调。 |
播放音乐(上麦后调用)。
说明:
- 播放音乐后,自身会收到
onMusicPrepareToPlay
的事件通知。- 音乐播放中,房间内所有成员会不断收到
onMusicProgressUpdate
的事件通知。- 音乐播放完成,自身会收到
onMusicCompletePlaying
的事件通知。
- (void)startPlayMusic:(int32_t)musicID originalUrl:(NSString *)originalUrl accompanyUrl:(NSString *)backingUrl NS_SWIFT_NAME(startPlayMusic(musicID:originalUrl:accompanyUrl:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
musicID | int32_t | 音乐的 ID。 |
originalUrl | String | 原唱音乐的绝对路径。 |
accompanyUrl | String | 伴奏音乐的绝对路径。 |
调用该接口后会停止上一个正在播放的歌曲。
停止播放音乐(播放音乐时调用)。
说明:停止播放后,会收到
onMusicCompletePlaying
的事件通知。
- (void)stopPlayMusic NS_SWIFT_NAME(stopPlayMusic());
暂停正在播放的音乐(播放音乐时调用)。
说明:
onMusicProgressUpdate
的事件通知会暂停- 不会收到
onMusicCompletePlaying
的事件通知。
- (void)pausePlayMusic NS_SWIFT_NAME(pausePlayMusic());
恢复暂停过的音乐(暂停后调用)。
说明:不会收到
onMusicPrepareToPlay
的事件通知。
- (void)resumePlayMusic NS_SWIFT_NAME(resumePlayMusic());
主动上麦(听众端和房主均可调用)。
说明:上麦成功后,房间内所有成员会收到
onSeatListChange
和onAnchorEnterSeat
的事件通知。
- (void)enterSeat:(NSInteger)seatIndex callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(enterSeat(seatIndex:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatIndex | int | 需要上麦的麦位序号。 |
callback | ActionCallback | 操作回调。 |
调用该接口会立即修改麦位表。如果是听众申请上麦需要房主同意的场景,可以先调用 sendInvitation
向房主申请,收到 onInvitationAccept
后再调用该函数。
主动下麦(主播调用)。
说明:下麦成功后,房间内所有成员会收到
onSeatListChange
和onAnchorLeaveSeat
的事件通知。
- (void)leaveSeat:(ActionCallback _Nullable)callback NS_SWIFT_NAME(leaveSeat(callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
callback | ActionCallback | 操作回调。 |
抱人上麦(房主调用)。
说明:房主抱人上麦,房间内所有成员会收到
onSeatListChange
和onAnchorEnterSeat
的事件通知。
- (void)pickSeat:(NSInteger)seatIndex userId:(NSString *)userId callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(pickSeat(seatIndex:userId:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatIndex | int | 需要抱上麦的麦位序号。 |
userId | String | 用户 ID。 |
callback | ActionCallback | 操作回调。 |
调用该接口会立即修改麦位表。如果是房主需要听众同意,听众才会上麦的场景,可以先调用 sendInvitation
向听众申请,收到 onInvitationAccept
后再调用该函数。
踢人下麦(房主调用)。
说明:房主踢人下麦,房间内所有成员会收到
onSeatListChange
和onAnchorLeaveSeat
的事件通知。
- (void)kickSeat:(NSInteger)seatIndex callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(kickSeat(seatIndex:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatIndex | int | 需要踢下麦的麦位序号。 |
callback | ActionCallback | 操作回调。 |
调用该接口会立即修改麦位表。
静音/解除静音某个麦位(房主调用)。
说明:静音/解除静音某个麦位,房间内所有成员会收到
onSeatListChange
和onSeatMute
的事件通知。
- (void)muteSeat:(NSInteger)seatIndex isMute:(BOOL)isMute callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(muteSeat(seatIndex:isMute:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatIndex | int | 需要操作的麦位序号。 |
isMute | boolean | true:静音对应麦位;false:解除静音对应麦位。 |
callback | ActionCallback | 操作回调。 |
调用该接口会立即修改麦位表。对应 seatIndex 座位上的主播,会自动调用 muteAudio 进行静音/解禁。
封禁/解禁某个麦位(房主调用)。
说明:房主封禁/解禁对应麦位,房间内所有成员会收到
onSeatListChange
和onSeatClose
的事件通知。
- (void)closeSeat:(NSInteger)seatIndex isClose:(BOOL)isClose callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(closeSeat(seatIndex:isClose:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatIndex | int | 需要操作的麦位序号。 |
isClose | boolean | true:封禁对应麦位; false:解封对应麦位。 |
callback | ActionCallback | 操作回调。 |
调用该接口会立即修改麦位表。封禁对应 seatIndex 座位上的主播,会自动下麦。
开启麦克风采集。
- (void)startMicrophone;
停止麦克风采集。
- (void)stopMicrophone;
设置音质。
- (void)setAuidoQuality:(NSInteger)quality NS_SWIFT_NAME(setAuidoQuality(quality:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
quality | int | 音频质量,详情请参见 TRTC SDK。 |
静音/取消静音本地的音频。
- (void)muteLocalAudio:(BOOL)mute NS_SWIFT_NAME(muteLocalAudio(mute:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
mute | boolean | 静音/取消静音,详情请参见 TRTC SDK。 |
设置开启扬声器。
- (void)setSpeaker:(BOOL)userSpeaker NS_SWIFT_NAME(setSpeaker(userSpeaker:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
useSpeaker | boolean | true:扬声器;false:听筒。 |
设置麦克风采集音量。
- (void)setAudioCaptureVolume:(NSInteger)volume NS_SWIFT_NAME(setAudioCaptureVolume(volume:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
volume | int | 采集音量,0 - 100, 默认100。 |
设置播放音量。
- (void)setAudioPlayoutVolume:(NSInteger)volume NS_SWIFT_NAME(setAudioPlayoutVolume(volume:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
volume | int | 播放音量,0 - 100, 默认100。 |
静音/解除静音指定成员。
- (void)muteRemoteAudio:(NSString *)userId mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudio(userId:mute:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userId | String | 指定的用户 ID。 |
mute | boolean | true:开启静音;false:关闭静音。 |
静音/解除静音所有成员。
- (void)muteAllRemoteAudio:(BOOL)isMute NS_SWIFT_NAME(muteAllRemoteAudio(isMute:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
isMute | boolean | true:开启静音;false:关闭静音。 |
开启/关闭 耳返。
- (void)setVoiceEarMonitorEnable:(BOOL)enable NS_SWIFT_NAME(setVoiceEarMonitor(enable:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
enable | boolean | true:开启耳返;false:关闭耳返。 |
获取背景音乐音效管理对象 TXAudioEffectManager。
- (TXAudioEffectManager * _Nullable)getAudioEffectManager;
在房间中广播文本消息,一般用于弹幕聊天。
- (void)sendRoomTextMsg:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomTextMsg(message:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
message | String | 文本消息。 |
callback | ActionCallback | 发送结果回调。 |
发送自定义文本消息。
- (void)sendRoomCustomMsg:(NSString *)cmd message:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomCustomMsg(cmd:message:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
cmd | String | 命令字,由开发者自定义,主要用于区分不同消息类型。 |
message | String | 文本消息。 |
callback | ActionCallback | 发送结果回调。 |
向用户发送邀请。
- (NSString *)sendInvitation:(NSString *)cmd
userId:(NSString *)userId
content:(NSString *)content
callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendInvitation(cmd:userId:content:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
cmd | String | 业务自定义指令。 |
userId | String | 邀请的用户 ID。 |
content | String | 邀请的内容。 |
callback | ActionCallback | 发送结果回调。 |
返回值:
返回值 | 类型 | 含义 |
---|---|---|
inviteId | String | 用于标识此次邀请 ID。 |
接受邀请。
- (void)acceptInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(acceptInvitation(identifier:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
callback | ActionCallback | 发送结果回调。 |
拒绝邀请。
- (void)rejectInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(rejectInvitation(identifier:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
callback | ActionCallback | 发送结果回调。 |
取消邀请。
- (void)cancelInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(cancelInvitation(identifier:callback:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
callback | ActionCallback | 发送结果回调。 |
错误回调。
说明:SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
- (void)onError:(int)code
message:(NSString*)message
NS_SWIFT_NAME(onError(code:message:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
code | int | 错误码。 |
message | String | 错误信息。 |
警告回调。
- (void)onWarning:(int)code
message:(NSString *)message
NS_SWIFT_NAME(onWarning(code:message:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
code | int | 错误码。 |
message | String | 警告信息。 |
Log 回调。
- (void)onDebugLog:(NSString *)message
NS_SWIFT_NAME(onDebugLog(message:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
message | String | 日志信息。 |
房间被销毁的回调。房主解散房间时,房间内的所有用户都会收到此通知。
- (void)onRoomDestroy:(NSString *)message
NS_SWIFT_NAME(onRoomDestroy(message:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
message | String | 回调信息。 |
进房成功后会回调该接口,roomInfo 中的信息在房主创建房间的时候传入。
- (void)onRoomInfoChange:(KaraokeInfo *)roomInfo
NS_SWIFT_NAME(onRoomInfoChange(roomInfo:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
roomInfo | RoomInfo | 房间信息。 |
用户麦克风是否静音回调,当用户调用muteLocalAudio,房间内的其他用户都会收到此通知。
- (void)onUserMicrophoneMute:(NSString *)userId mute:(BOOL)mute
NS_SWIFT_NAME(onUserMicrophoneMute(userId:mute:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userId | String | 用户 ID。 |
mute | boolean | 音量大小,取值:0 - 100。 |
启用音量大小提示,会通知每个成员的音量大小。
- (void)onUserVolumeUpdate:(NSArray<TRTCVolumeInfo *> *)userVolumes totalVolume:(NSInteger)totalVolume
NS_SWIFT_NAME(onUserVolumeUpdate(userVolumes:totalVolume:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userVolumes | List | 用户列表。 |
totalVolume | int | 音量大小,取值:0 - 100。 |
全量的麦位列表变化,包含了整个麦位表。
- (void)onSeatInfoChange:(NSArray<KaraokeSeatInfo *> *)seatInfolist
NS_SWIFT_NAME(onSeatListChange(seatInfoList:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
seatInfoList | List<SeatInfo> | 全量的麦位列表。 |
有成员上麦(主动上麦/房主抱人上麦)。
- (void)onAnchorEnterSeat:(NSInteger)index
user:(KaraokeUserInfo *)user
NS_SWIFT_NAME(onAnchorEnterSeat(index:user:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
index | int | 成员上麦的麦位。 |
user | UserInfo | 上麦用户的详细信息。 |
有成员下麦(主动下麦/房主踢人下麦)。
- (void)onAnchorLeaveSeat:(NSInteger)index
user:(KaraokeUserInfo *)user
NS_SWIFT_NAME(onAnchorLeaveSeat(index:user:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
index | int | 下麦的麦位。 |
user | UserInfo | 上麦用户的详细信息。 |
房主禁麦。
- (void)onSeatMute:(NSInteger)index
isMute:(BOOL)isMute
NS_SWIFT_NAME(onSeatMute(index:isMute:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
index | int | 操作的麦位。 |
isMute | boolean | true:静音麦位; false:解除静音。 |
房主封麦。
- (void)onSeatClose:(NSInteger)index
isClose:(BOOL)isClose
NS_SWIFT_NAME(onSeatClose(index:isClose:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
index | int | 操作的麦位。 |
isClose | boolean | true:封禁麦位; false: 解禁麦位。 |
收到听众进房通知。
- (void)onAudienceEnter:(KaraokeUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceEnter(userInfo:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userInfo | UserInfo | 进房听众信息。 |
收到听众退房通知。
- (void)onAudienceExit:(KaraokeUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceExit(userInfo:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userInfo | UserInfo | 退房听众信息。 |
收到文本消息。
- (void)onRecvRoomTextMsg:(NSString *)message
userInfo:(KaraokeUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomTextMsg(message:userInfo:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
message | String | 文本消息。 |
userInfo | UserInfo | 发送者用户信息。 |
收到自定义消息。
- (void)onRecvRoomCustomMsg:(NSString *)cmd
message:(NSString *)message
userInfo:(KaraokeUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomCustomMsg(cmd:message:userInfo:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
command | String | 命令字,由开发者自定义,主要用于区分不同消息类型。 |
message | String | 文本消息。 |
userInfo | UserInfo | 发送者用户信息。 |
收到新的邀请请求。
- (void)onReceiveNewInvitation:(NSString *)identifier
inviter:(NSString *)inviter
cmd:(NSString *)cmd
content:(NSString *)content
NS_SWIFT_NAME(onReceiveNewInvitation(identifier:inviter:cmd:content:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
inviter | String | 邀请人的用户 ID。 |
cmd | String | 业务指定的命令字,由开发者自定义。 |
content | UserInfo | 业务指定的内容。 |
被邀请者接受邀请。
- (void)onInviteeAccepted:(NSString *)identifier
invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeAccepted(identifier:invitee:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
invitee | String | 被邀请人的用户 ID。 |
被邀请者拒绝邀请。
- (void)onInviteeRejected:(NSString *)identifier
invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeRejected(identifier:invitee:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
invitee | String | 被邀请人的用户 ID。 |
邀请人取消邀请。
- (void)onInvitationCancelled:(NSString *)identifier
invitee:(NSString *)invitee NS_SWIFT_NAME(onInvitationCancelled(identifier:invitee:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
id | String | 邀请 ID。 |
invitee | String | 邀请人的用户 ID。 |
准备播放音乐的回调
- (void)onMusicPrepareToPlay:(int32_t)musicID
NS_SWIFT_NAME(onMusicPrepareToPlay(musicID:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
musicID | int32_t | 播放时传入的 musicID。 |
歌曲播放进度的回调
- (void)onMusicProgressUpdate:(int32_t)musicID
progress:(NSInteger)progress total:(NSInteger)total
NS_SWIFT_NAME(onMusicProgressUpdate(musicID:progress:total:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
musicID | int32_t | 播放时传入的 musicID。 |
progress | NSInteger | 当前播放时间,单位: ms。 |
total | NSInteger | 总时间,单位: ms。 |
播放完成音乐的回调
- (void)onMusicCompletePlaying:(int32_t)musicID
NS_SWIFT_NAME(onMusicCompletePlaying(musicID:));
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
musicID | int32_t | 播放时传入的 musicID。 |
本页内容是否解决了您的问题?