当前位置:主页 > 查看内容

实时音视频 TRTCVoiceRoom (iOS) - 场景实践

发布时间:2021-10-24 00:00| 位朋友查看

简介:TRTCVoiceRoom 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的组件,支持以下功能: 主播创建新的语音聊天室开播,观众进入语聊房间收听/互动。 主播可以邀请观众上麦、将座位上的麦上主播踢下麦。 主播还能对座位进行封禁,其他观众就不能再……

TRTCVoiceRoom 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的组件,支持以下功能:

  • 主播创建新的语音聊天室开播,观众进入语聊房间收听/互动。
  • 主播可以邀请观众上麦、将座位上的麦上主播踢下麦。
  • 主播还能对座位进行封禁,其他观众就不能再进行申请上麦了。
  • 观众可以申请上麦,变成麦上主播,可以和其他人语音互动,也可以随时下麦成为普通的观众。
  • 支持发送各种文本消息和自定义消息,自定义消息可用于实现弹幕、点赞和礼物等。

TRTCVoiceRoom 是一个开源的 Class,依赖腾讯云的两个闭源 SDK,具体的实现过程请参见 语音聊天室(iOS)。

  • TRTC SDK:使用 TRTC SDK 作为低延时语音聊天组件。
  • IM SDK:使用 IM SDK 的 AVChatroom 实现聊天室的功能,同时,通过 IM 的属性接口来存储麦位表等房间信息,邀请信令可以用于上麦申请/抱麦申请。

TRTCVoiceRoom API 概览

SDK 基础函数

API 描述
sharedInstance 获取单例对象。
destroySharedInstance 销毁单例对象。
setDelegate 设置事件回调。
setDelegateHandler 设置事件回调所在的线程。
login 登录。
logout 登出。
setSelfProfile 修改个人信息。

房间相关接口函数

API 描述
createRoom 创建房间(主播调用),若房间不存在,系统将自动创建一个新房间。
destroyRoom 销毁房间(主播调用)。
enterRoom 进入房间(观众调用)。
exitRoom 离开房间(观众调用)。
getRoomInfoList 获取房间列表的详细信息。
getUserInfoList 获取指定 userId 的用户信息,如果为 null,则获取房间内所有人的信息。

麦位管理接口

API 描述
enterSeat 主动上麦(观众端和主播均可调用)。
leaveSeat 主动下麦(观众端和主播均可调用)。
pickSeat 抱人上麦(主播调用)。
kickSeat 踢人下麦(主播调用)。
muteSeat 静音/解除静音某个麦位(主播调用)。
closeSeat 封禁/解禁某个麦位(主播调用)。

本地音频操作接口

API 描述
startMicrophone 开启麦克风采集。
stopMicrophone 停止麦克风采集。
setAudioQuality 设置音质。
muteLocalAudio 开启/关闭本地静音。
setSpeaker 设置开启扬声器。
setAudioCaptureVolume 设置麦克风采集音量。
setAudioPlayoutVolume 设置播放音量。

远端用户音频操作接口

API 描述
muteRemoteAudio 静音/解除静音指定成员。
muteAllRemoteAudio 静音/解除静音所有成员。

背景音乐音效相关接口

API 描述
getAudioEffectManager 获取背景音乐音效管理对象 TXAudioEffectManager。

消息发送相关接口

API 描述
sendRoomTextMsg 在房间中广播文本消息,一般用于弹幕聊天。
sendRoomCustomMsg 发送自定义文本消息。

邀请信令相关接口

API 描述
sendInvitation 向用户发送邀请。
acceptInvitation 接受邀请。
rejectInvitation 拒绝邀请。
cancelInvitation 取消邀请。

TRTCVoiceRoomDelegate API 概览

通用事件回调

API 描述
onError 错误回调。
onWarning 警告回调。
onDebugLog Log 回调。

房间事件回调

API 描述
onRoomDestroy 房间被销毁的回调。
onRoomInfoChange 语聊房间信息变更回调。
onUserVolumeUpdate 用户通话音量回调。

麦位变更回调

API 描述
onSeatListChange 全量的麦位列表变化。
onAnchorEnterSeat 有成员上麦(主动上麦/主播抱人上麦)。
onAnchorLeaveSeat 有成员下麦(主动下麦/主播踢人下麦)。
onSeatMute 主播禁麦。
onSeatClose 主播封麦。

观众进出事件回调

API 描述
onAudienceEnter 收到观众进房通知。
onAudienceExit 收到观众退房通知。

消息事件回调

API 描述
onRecvRoomTextMsg 收到文本消息。
onRecvRoomCustomMsg 收到自定义消息。

信令事件回调

API 描述
onReceiveNewInvitation 收到新的邀请请求。
onInviteeAccepted 被邀请人接受邀请。
onInviteeRejected 被邀请人拒绝邀请。
onInvitationCancelled 邀请人取消邀请。

SDK 基础函数

sharedInstance

获取 TRTCVoiceRoom 单例对象。

/**
* 获取 TRTCVoiceRoom 单例对象
*
* - returns: TRTCVoiceRoom 实例
* - note: 可以调用 {@link TRTCVoiceRoom#destroySharedInstance()} 销毁单例对象
*/
+ (instancetype)sharedInstance NS_SWIFT_NAME(shared());

destroySharedInstance

销毁 TRTCVoiceRoom 单例对象。

说明:

销毁实例后,外部缓存的 TRTCVoiceRoom 实例无法再使用,需要重新调用 sharedInstance 获取新实例。

/**
* 销毁 TRTCVoiceRoom 单例对象
*
* - note: 销毁实例后,外部缓存的 TRTCVoiceRoom 实例不能再使用,需要重新调用 {@link TRTCVoiceRoom#sharedInstance()} 获取新实例
*/
+ (void)destroySharedInstance NS_SWIFT_NAME(destroyShared());

setDelegate

TRTCVoiceRoom 事件回调,您可以通过 TRTCVoiceRoomDelegate 获得 TRTCVoiceRoom 的各种状态通知。

/**
* 设置组件回调接口
* 
* 您可以通过 TRTCVoiceRoomDelegate 获得 TRTCVoiceRoom 的各种状态通知
*
* - parameter delegate 回调接口
* - note: TRTCVoiceRoom 中的回调事件,默认是在 Main Queue 中回调给您;如果您需要指定事件回调所在的队列,可使用 {@link TRTCVoiceRoom#setDelegateQueue(queue)}
*/
- (void)setDelegate:(id<TRTCVoiceRoomDelegate>)delegate NS_SWIFT_NAME(setDelegate(delegate:));
说明:

setDelegate 是 TRTCVoiceRoom 的代理回调。

setDelegateQueue

设置事件回调所在的线程队列,默认发送动主线程 MainQueue 中。

/**
* 设置事件回调所在的队列
*
* - parameter queue 队列,TRTCVoiceRoom 中的各种状态通知回调,会派发到您指定的queue。
*/
- (void)setDelegateQueue:(dispatch_queue_t)queue NS_SWIFT_NAME(setDelegateQueue(queue:));

参数如下表所示:

参数 类型 含义
queue dispatch_queue_t TRTCVoiceRoom 中的各种状态通知,会派发到您指定的线程队列里去。

login

登录。

- (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。

logout

登出。

- (void)logout:(ActionCallback _Nullable)callback NS_SWIFT_NAME(logout(callback:));

参数如下表所示:

参数 类型 含义
callback ActionCallback 登出回调,成功时 code 为0。

setSelfProfile

修改个人信息。

- (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。

房间相关接口函数

createRoom

创建房间(主播调用)。

- (void)createRoom:(int)roomID roomParam:(VoiceRoomParam *)roomParam callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(createRoom(roomID:roomParam:callback:));

参数如下表所示:

参数 类型 含义
roomId int 房间标识,需要由您分配并进行统一管理。多个 roomID 可以汇总成一个语聊房间列表,腾讯云暂不提供语聊房间列表的管理服务,请自行管理您的语聊房间列表。
roomParam TRTCCreateRoomParam 房间信息,用于房间描述的信息。例如房间名称、麦位信息、封面信息等。如果需要麦位管理,必须要填入房间的麦位数。
callback ActionCallback 创建房间的结果回调,成功时 code 为0。

主播开播的正常调用流程如下:

  1. 主播调用 createRoom 创建新的语音聊天室,此时传入房间 ID、上麦是否需要房主确认、麦位数等房间属性信息。
  2. 主播创建房间成功后,调用 enterSeat 进入座位。
  3. 主播收到组件的 onSeatListChange 麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
  4. 主播还会收到麦位表有成员进入的 onAnchorEnterSeat 的事件通知,此时会自动打开麦克风采集。

destroyRoom

销毁房间(主播调用)。主播在创建房间后,可以调用这个函数来销毁房间。

- (void)destroyRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(destroyRoom(callback:));

参数如下表所示:

参数 类型 含义
callback ActionCallback 销毁房间的结果回调,成功时 code 为0。

enterRoom

进入房间(观众调用)。

- (void)enterRoom:(NSInteger)roomID callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(enterRoom(roomID:callback:));

参数如下表所示:

参数 类型 含义
roomId int 房间标识。
callback ActionCallback 进入房间的结果回调,成功时 code 为0。

观众进房收听的正常调用流程如下:

  1. 观众向您的服务端获取最新的语音聊天室列表,可能包含多个语聊房间的 roomId 和房间信息。
  2. 观众选择一个语音聊天室,调用 enterRoom 并传入房间号即可进入该房间。
  3. 进房后会收到组件的 onRoomInfoChange 房间属性变化事件通知,此时可以记录房间属性并做相应改变,例如 UI 展示房间名、记录上麦是否需要请求主播同意等。
  4. 进房后会收到组件的 onSeatListChange 麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
  5. 进房后还会收到麦位表有主播进入的 onAnchorEnterSeat 的事件通知。

exitRoom

离开房间。

- (void)exitRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(exitRoom(callback:));

参数如下表所示:

参数 类型 含义
callback ActionCallback 退出房间的结果回调,成功时 code 为0。

getRoomInfoList

获取房间列表的详细信息,其中房间名称、房间封面是主播在创建 createRoom() 时通过 roomInfo 设置的。

说明:

如果房间列表和房间信息都由您自行管理,可忽略该函数。

- (void)getRoomInfoList:(NSArray<NSNumber *> *)roomIdList callback:(VoiceRoomInfoCallback _Nullable)callback NS_SWIFT_NAME(getRoomInfoList(roomIdList:callback:));

参数如下表所示:

参数 类型 含义
roomIdList List<Integer> 房间号列表。
callback RoomInfoCallback 房间详细信息回调。

getUserInfoList

获取指定 userId 的用户信息。

- (void)getUserInfoList:(NSArray<NSString *> * _Nullable)userIDList callback:(VoiceRoomUserListCallback _Nullable)callback NS_SWIFT_NAME(getUserInfoList(userIDList:callback:));

参数如下表所示:

参数 类型 含义
userIdList List<String> 需要获取的用户 ID 列表,如果为 null,则获取房间内所有人的信息。
userlistcallback UserListCallback 用户详细信息回调。

麦位管理接口

enterSeat

主动上麦(观众端和主播均可调用)。

说明:

上麦成功后,房间内所有成员会收到 onSeatListChangeonAnchorEnterSeat 的事件通知。

- (void)enterSeat:(NSInteger)seatIndex callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(enterSeat(seatIndex:callback:));

参数如下表所示:

参数 类型 含义
seatIndex int 需要上麦的麦位序号。
callback ActionCallback 操作回调。

调用该接口会立即修改麦位表。如果是观众需要主播申请的场景,可以先调用 sendInvitation 向主播申请,收到 onInvitationAccept 后再调用该函数。

leaveSeat

主动下麦(观众端和主播均可调用)。

说明:

下麦成功后,房间内所有成员会收到 onSeatListChangeonAnchorLeaveSeat 的事件通知。

- (void)leaveSeat:(ActionCallback _Nullable)callback NS_SWIFT_NAME(leaveSeat(callback:));

参数如下表所示:

参数 类型 含义
callback ActionCallback 操作回调。

pickSeat

抱人上麦(主播调用)。

说明:

主播抱人上麦,房间内所有成员会收到 onSeatListChangeonAnchorEnterSeat 的事件通知。

- (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后再调用该函数。

kickSeat

踢人下麦(主播调用)。

说明:

主播踢人下麦,房间内所有成员会收到 onSeatListChangeonAnchorLeaveSeat 的事件通知。

- (void)kickSeat:(NSInteger)seatIndex callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(kickSeat(seatIndex:callback:));

参数如下表所示:

参数 类型 含义
seatIndex int 需要踢下麦的麦位序号。
callback ActionCallback 操作回调。

调用该接口会立即修改麦位表。如果是主播需要观众同意才能上麦的场景,可以先调用 sendInvitation 向观众申请,收到 onInvitationAccept 后再调用该函数。

muteSeat

静音/解除静音某个麦位(主播调用)。

说明:

静音/解除静音某个麦位,房间内所有成员会收到 onSeatListChangeonSeatMute 的事件通知。

- (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 进行静音/解禁。

closeSeat

封禁/解禁某个麦位(主播调用)。

说明:

主播封禁/解禁对应麦位,房间内所有成员会收到 onSeatListChangeonSeatClose 的事件通知。

- (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 座位上的主播,会自动下麦。

本地音频操作接口

startMicrophone

开启麦克风采集。

- (void)startMicrophone;

stopMicrophone

停止麦克风采集。

- (void)stopMicrophone;

setAudioQuality

设置音质。

- (void)setAuidoQuality:(NSInteger)quality NS_SWIFT_NAME(setAuidoQuality(quality:));

参数如下表所示:

参数 类型 含义
quality int 音频质量,详情请参见 TRTC SDK。

muteLocalAudio

静音/取消静音本地的音频。

- (void)muteLocalAudio:(BOOL)mute NS_SWIFT_NAME(muteLocalAudio(mute:));

参数如下表所示:

参数 类型 含义
mute boolean 静音/取消静音,详情请参见 TRTC SDK。

setSpeaker

设置开启扬声器。

- (void)setSpeaker:(BOOL)userSpeaker NS_SWIFT_NAME(setSpeaker(userSpeaker:));

参数如下表所示:

参数 类型 含义
useSpeaker boolean true:扬声器;false:听筒。

setAudioCaptureVolume

设置麦克风采集音量。

- (void)setAudioCaptureVolume:(NSInteger)voluem NS_SWIFT_NAME(setAudioCaptureVolume(volume:));

参数如下表所示:

参数 类型 含义
volume int 采集音量,0 - 100, 默认100。

setAudioPlayoutVolume

设置播放音量。

- (void)setAudioPlayoutVolume:(NSInteger)volume NS_SWIFT_NAME(setAudioPlayoutVolume(volume:));

参数如下表所示:

参数 类型 含义
volume int 播放音量,0 - 100, 默认100。

muteRemoteAudio

静音/解除静音指定成员。

- (void)muteRemoteAudio:(NSString *)userId mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudio(userId:mute:));

参数如下表所示:

参数 类型 含义
userId String 指定的用户 ID。
mute boolean true:开启静音;false:关闭静音。

muteAllRemoteAudio

静音/解除静音所有成员。

- (void)muteAllRemoteAudio:(BOOL)isMute NS_SWIFT_NAME(muteAllRemoteAudio(isMute:));

参数如下表所示:

参数 类型 含义
mute boolean true:开启静音;false:关闭静音。

背景音乐音效相关接口函数

getAudioEffectManager

获取背景音乐音效管理对象 TXAudioEffectManager。

- (TXAudioEffectManager * _Nullable)getAudioEffectManager;

消息发送相关接口函数

sendRoomTextMsg

在房间中广播文本消息,一般用于弹幕聊天。

- (void)sendRoomTextMsg:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomTextMsg(message:callback:));

参数如下表所示:

参数 类型 含义
message String 文本消息。
callback ActionCallback 发送结果回调。

sendRoomCustomMsg

发送自定义文本消息。

- (void)sendRoomCustomMsg:(NSString *)cmd message:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomCustomMsg(cmd:message:callback:));

参数如下表所示:

参数 类型 含义
cmd String 命令字,由开发者自定义,主要用于区分不同消息类型。
message String 文本消息。
callback ActionCallback 发送结果回调。

邀请信令相关接口

sendInvitation

向用户发送邀请。

- (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。

acceptInvitation

接受邀请。

- (void)acceptInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(acceptInvitation(identifier:callback:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
callback ActionCallback 发送结果回调。

rejectInvitation

拒绝邀请。

- (void)rejectInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(rejectInvitation(identifier:callback:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
callback ActionCallback 发送结果回调。

cancelInvitation

取消邀请。

- (void)cancelInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(cancelInvitation(identifier:callback:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
callback ActionCallback 发送结果回调。

TRTCVoiceRoomDelegate事件回调

通用事件回调

onError

错误回调。

说明:

SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。

- (void)onError:(int)code
              message:(NSString*)message
NS_SWIFT_NAME(onError(code:message:));

参数如下表所示:

参数 类型 含义
code int 错误码。
message String 错误信息。

onWarning

警告回调。

- (void)onWarning:(int)code
                message:(NSString *)message
NS_SWIFT_NAME(onWarning(code:message:));

参数如下表所示:

参数 类型 含义
code int 错误码。
message String 警告信息。

onDebugLog

Log 回调。

- (void)onDebugLog:(NSString *)message
NS_SWIFT_NAME(onDebugLog(message:));

参数如下表所示:

参数 类型 含义
message String 日志信息。

房间事件回调

onRoomDestroy

房间被销毁的回调。主播解散房间时,房间内的所有用户都会收到此通知。

- (void)onRoomDestroy:(NSString *)message
NS_SWIFT_NAME(onRoomDestroy(message:));

参数如下表所示:

参数 类型 含义
roomId String 房间 ID。

onRoomInfoChange

进房成功后会回调该接口,roomInfo 中的信息在创建房间。

- (void)onRoomInfoChange:(VoiceRoomInfo *)roomInfo
NS_SWIFT_NAME(onRoomInfoChange(roomInfo:));

参数如下表所示:

参数 类型 含义
roomInfo RoomInfo 房间信息。

onUserVolumeUpdate

启用音量大小提示,会通知每个成员的音量大小。

- (void)onUserVolumeUpdate:(NSString *)userId
                            volume:(NSInteger)volume
NS_SWIFT_NAME(onUserVolumeUpdate(userId:volume:));

参数如下表所示:

参数 类型 含义
userId String 用户 ID。
volume int 音量大小,取值:0 - 100。

麦位回调

onSeatListChange

全量的麦位列表变化,包含了整个麦位表。

- (void)onSeatInfoChange:(NSArray<VoiceRoomSeatInfo *> *)seatInfolist
NS_SWIFT_NAME(onSeatListChange(seatInfoList:));

参数如下表所示:

参数 类型 含义
seatInfoList List<SeatInfo> 全量的麦位列表。

onAnchorEnterSeat

有成员上麦(主动上麦/主播抱人上麦)。

- (void)onAnchorEnterSeat:(NSInteger)index
                            user:(VoiceRoomUserInfo *)user
NS_SWIFT_NAME(onAnchorEnterSeat(index:user:));

参数如下表所示:

参数 类型 含义
index int 成员上麦的麦位。
user UserInfo 上麦用户的详细信息。

onAnchorLeaveSeat

有成员下麦(主动下麦/主播踢人下麦)。

- (void)onAnchorLeaveSeat:(NSInteger)index
                   user:(VoiceRoomUserInfo *)user
NS_SWIFT_NAME(onAnchorLeaveSeat(index:user:));

参数如下表所示:

参数 类型 含义
index int 下麦的麦位。
user UserInfo 上麦用户的详细信息。

onSeatMute

主播禁麦。

- (void)onSeatMute:(NSInteger)index
          isMute:(BOOL)isMute
NS_SWIFT_NAME(onSeatMute(index:isMute:));

参数如下表所示:

参数 类型 含义
index int 操作的麦位。
isMute boolean true:静音麦位; false:解除静音。

onSeatClose

主播封麦。

- (void)onSeatClose:(NSInteger)index
          isClose:(BOOL)isClose
NS_SWIFT_NAME(onSeatClose(index:isClose:));

参数如下表所示:

参数 类型 含义
index int 操作的麦位。
isClose boolean true:封禁麦位; false: 解禁麦位。

观众进出事件回调

onAudienceEnter

收到观众进房通知。

- (void)onAudienceEnter:(VoiceRoomUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceEnter(userInfo:));

参数如下表所示:

参数 类型 含义
userInfo UserInfo 进房观众信息。

onAudienceExit

收到观众退房通知。

- (void)onAudienceExit:(VoiceRoomUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceExit(userInfo:));

参数如下表所示:

参数 类型 含义
userInfo UserInfo 退房观众信息。

消息事件回调

onRecvRoomTextMsg

收到文本消息。

- (void)onRecvRoomTextMsg:(NSString *)message
               userInfo:(VoiceRoomUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomTextMsg(message:userInfo:));

参数如下表所示:

参数 类型 含义
message String 文本消息。
userInfo UserInfo 发送者用户信息。

onRecvRoomCustomMsg

收到自定义消息。

- (void)onRecvRoomCustomMsg:(NSString *)cmd
                  message:(NSString *)message
                 userInfo:(VoiceRoomUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomCustomMsg(cmd:message:userInfo:));

参数如下表所示:

参数 类型 含义
command String 命令字,由开发者自定义,主要用于区分不同消息类型。
message String 文本消息。
userInfo UserInfo 发送者用户信息。

邀请信令事件回调

onReceiveNewInvitation

收到新的邀请请求。

- (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 业务指定的内容。

onInviteeAccepted

被邀请者接受邀请。

- (void)onInviteeAccepted:(NSString *)identifier
                invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeAccepted(identifier:invitee:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
invitee String 被邀请人的用户 ID。

onInviteeRejected

被邀请者拒绝邀请。

- (void)onInviteeRejected:(NSString *)identifier
                invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeRejected(identifier:invitee:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
invitee String 被邀请人的用户 ID。

onInvitationCancelled

邀请人取消邀请。

- (void)onInvitationCancelled:(NSString *)identifier
                    invitee:(NSString *)invitee NS_SWIFT_NAME(onInvitationCancelled(identifier:invitee:));

参数如下表所示:

参数 类型 含义
id String 邀请 ID。
inviter String 邀请人的用户 ID。

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐