TRTCChatSalon
is based on Tencent Real-Time Communication (TRTC) and Instant Messaging (IM). Its features include:
TRTCChatSalon
is an open-source class depending on two closed-source Tencent Cloud SDKs.
AVChatRoom
feature of the IM SDK is used to implement chat rooms. The attribute APIs of IM are used to store room information such as the seat list, and invitation signaling is used to send requests to speak or invite others to speak.TRTCChatSalon
API OverviewAPI | Description |
---|---|
sharedInstance | Gets a singleton object. |
destroySharedInstance | Terminates a singleton object. |
setDelegate | Sets event callback. |
delegateQueue | Sets the thread where the event callback is. |
login | Logs in. |
logout | Logs out. |
setSelfProfile | Sets profile. |
API | Description |
---|---|
createRoom | Creates a room (called by room owner). If the room does not exist, the system will automatically create a room. |
destroyRoom | Terminates a room (called by room owner). |
enterRoom | Enters a room (called by listener). |
exitRoom | Exits a room (called by listener). |
getRoomInfoList | Gets room list details. |
getUserInfoList | Gets the user information of the specified userId . If the value is nil , the information of all users in the room is obtained. |
API | Description |
---|---|
enterSeat | Becomes a speaker (called by room owner or listener). |
leaveSeat | Becomes a listener (called by speaker). |
pickSeat | Invites a listener to speak (called by room owner). |
kickSeat | Removes a speaker (called by room owner). |
API | Description |
---|---|
startMicrophone | Enables mic capturing. |
stopMicrophone | Stops mic capturing. |
setAudioQuality | Sets audio quality. |
muteLocalAudio | Mutes/Unmutes local audio. |
setSpeaker | Turns the speaker on. |
setAudioCaptureVolume | Sets mic capturing volume. |
setAudioPlayoutVolume | Sets playback volume. |
API | Description |
---|---|
muteRemoteAudio | Mutes/Unmutes a specified member. |
muteAllRemoteAudio | Mutes/Unmutes all members. |
API | Description |
---|---|
getAudioEffectManager | Gets the background music and audio effect management object TXAudioEffectManager. |
API | Description |
---|---|
sendRoomTextMsg | Broadcasts a text message in a room. This API is generally used for on-screen comments. |
sendRoomCustomMsg | Sends a custom text message. |
API | Description |
---|---|
sendInvitation | Sends an invitation. |
acceptInvitation | Accepts an invitation. |
rejectInvitation | Declines an invitation. |
cancelInvitation | Cancels an invitation. |
TRTCChatSalonDelegate
API OverviewAPI | Description |
---|---|
onError | Error |
onWarning | Warning |
onDebugLog | Log |
API | Description |
---|---|
onRoomDestroy | Room termination |
onRoomInfoChange | Room information change |
onUserVolumeUpdate | User volume |
API | Description |
---|---|
onAnchorEnterSeat | Someone became a speaker after requesting or being invited by the room owner. |
onAnchorLeaveSeat | Someone became a listener or was moved to listeners by the room owner. |
onSeatMute | The room owner muted a speaker. |
API | Description |
---|---|
onAudienceEnter | A listener entered the room. |
onAudienceExit | A listener exited the room. |
API | Description |
---|---|
onRecvRoomTextMsg | Receipt of a text message |
onRecvRoomCustomMsg | Receipt of a custom message |
API | Description |
---|---|
onReceiveNewInvitation | Receipt of an invitation |
onInviteeAccepted | Invitation accepted by invitee |
onInviteeRejected | Invitation declined by invitee |
onInvitationCancelled | Invitation canceled by inviter |
This API is used to get a TRTCChatSalon singleton object.
/**
* Get a `TRTCChatSalon` singleton object
*
* - returns: `TRTCChatSalon` instance
* - note: you can call `{@link TRTCChatSalon#destroySharedInstance()}` to terminate a singleton object.
*/
+ (instancetype)sharedInstance NS_SWIFT_NAME(shared());
This API is used to terminate a TRTCChatSalon singleton object.
Note:After the instance is terminated, the externally cached
TRTCChatSalon
instance can no longer be used. You need to call sharedInstance again to get a new instance.
/**
* Terminate the `TRTCChatSalon` singleton object
*
* - note: after the instance is terminated, the externally cached `TRTCChatSalon` instance can no longer be used. You need to call `{@link TRTCChatSalon#sharedInstance()}` again to get a new instance.
*/
+ (void)destroySharedInstance NS_SWIFT_NAME(destroyShared());
This API is used to set the event callback of TRTCChatSalon. You can use TRTCChatSalonDelegate
to get different status notifications of TRTCChatSalon.
/**
* Set the component callback
*
* You can use `TRTCChatSalonDelegate` to get status notifications of `TRTCChatSalon`
*
* - parameter delegate Callback API
* - note: events in `TRTCChatSalon` are called back to you in the main queue by default. If you need to specify a queue for event callback, please use `{@link TRTCChatSalon#setDelegateQueue(queue)}`
*/
- (void)setDelegate:(id<TRTCChatSalonDelegate>)delegate NS_SWIFT_NAME(setDelegate(delegate:));
Note:
setDelegate
is the delegate callback ofTRTCChatSalon
.
This API is used to set the thread queue for event callback. The main thread (MainQueue) is used by default.
/**
* Set the queue for event callback
*
* - parameter queue. The status notifications of `TRTCChatSalon` will be sent to the queue you specify.
*/
- (void)setDelegateQueue:(dispatch_queue_t)queue NS_SWIFT_NAME(setDelegateQueue(queue:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
queue | dispatch_queue_t | The status notifications of TRTCChatSalon will be sent to the thread queue you specify. |
This API is used to log in.
- (void)login:(int)sdkAppID
userID:(NSString *)userID
userSig:(NSString *)userSig
callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(login(sdkAppID:userID:userSig:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
sdkAppId | int | You can view the SDKAppID via Application Management > Application Info in the TRTC console. |
userId | String | ID of current user, which is a string that can contain only letters (a-z and A-Z), digits (0–9), hyphens (-), and underscores (_). |
userSig | String | Tencent Cloud's proprietary security signature. For more information on how to get it, please see UserSig. |
callback | ActionCallback | Callback for login. The code will be 0 if login succeeds. |
This API is used to log out.
- (void)logout:(ActionCallback _Nullable)callback NS_SWIFT_NAME(logout(callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
callback | ActionCallback | Callback for logout. The code is 0 if logout succeeds. |
This API is used to set profile.
- (void)setSelfProfile:(NSString *)userName avatarURL:(NSString *)avatarURL callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(setSelfProfile(userName:avatarURL:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userName | String | Nickname |
avatar | String | Profile photo address |
callback | ActionCallback | Callback for profile setting. The code is 0 if the operation succeeds. |
This API is used to create a room (called by room owner).
- (void)createRoom:(int)roomID roomParam:(ChatSalonParam *)roomParam callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(createRoom(roomID:roomParam:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
roomId | int | Room ID. You need to assign and manage the IDs in a centralized manner. Multiple roomID values can be aggregated into a chat salon room list. Currently, Tencent Cloud does not provide management services for chat salon room lists. Please manage the list on your own. |
roomParam | ChatSalonParam | Room information, such as room name, speaker list information, and cover information |
callback | ActionCallback | Callback for room creation result. The code is 0 if the operation succeeds. |
The process of creating an audio chat room and becoming a speaker is as follows:
createRoom
to create a chat salon, passing in room attributes (e.g., room ID and whether listeners require room owner’s consent to speak).enterSeat
to become a speaker.onAnchorEnterSeat
notification that someone became a speaker, and mic capturing will be enabled automatically.This API is used to terminate a room (called by room owner).
- (void)destroyRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(destroyRoom(callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
callback | ActionCallback | Callback for room termination result. The code is 0 if the operation succeeds. |
This API is used to enter a room (called by listener).
- (void)enterRoom:(NSInteger)roomID callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(enterRoom(roomID:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
roomId | int | Room ID |
callback | ActionCallback | Callback for room entry result. The code is 0 if the operation succeeds. |
The process of entering a room as a listener is as follows:
roomId
and room information of multiple chat salons.enterRoom
with the room ID passed in to enter.onRoomInfoChange
notification about room change from the component. Record the room information, including room name, whether the room owner’s consent is required for listeners to speak, etc., and update it to the UI.onAnchorEnterSeat
notification that someone became a speaker.This API is used to exit a room.
- (void)exitRoom:(ActionCallback _Nullable)callback NS_SWIFT_NAME(exitRoom(callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
callback | ActionCallback | Callback for room exit result. The code is 0 if the operation succeeds. |
This API is used to get room list details. The room name and cover are set by the room owner via roomInfo
when calling createRoom()
.
Note:You don’t need this API if both the room list and room information are managed on your server.
- (void)getRoomInfoList:(NSArray<NSNumber *> *)roomIdList callback:(ChatSalonInfoCallback _Nullable)callback NS_SWIFT_NAME(getRoomInfoList(roomIdList:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
roomIdList | List<Integer> | Room ID list |
callback | ChatSalonInfoCallback | Callback for room details |
This API is used to get the user information of a specified userId
.
- (void)getUserInfoList:(NSArray<NSString *> * _Nullable)userIDList callback:(ChatSalonUserListCallback _Nullable)callback NS_SWIFT_NAME(getUserInfoList(userIDList:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userIdList | List<String> | List of user IDs to obtain. If this parameter is null , the information of all users in the room is obtained. |
callback | ChatSalonUserListCallback | Callback for user details |
This API is used to become a speaker (called by room owner or listener).
Note:After a user becomes a speaker, all members in the room will receive an
onAnchorEnterSeat
notification.
- (void)enterSeat:(ActionCallback _Nullable)callback
NS_SWIFT_NAME(enterSeat(callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
callback | ActionCallback | Callback for operation |
Calling this API will immediately modify the seat list. In cases where listeners need the room owner’s consent to speak, you can call sendInvitation
first to send a request and, after receiving onInvitationAccept
, call enterSeat
.
This API is used to remove a speaker (called by room owner).
Note:After a speaker becomes a listener, all members in the room will receive an
onAnchorLeaveSeat
notification.
- (void)leaveSeat:(ActionCallback _Nullable)callback NS_SWIFT_NAME(leaveSeat(callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
callback | ActionCallback | Callback for operation |
This API is used to invite a listener to speak (called by room owner).
Note:After a listener becomes a speaker following the room owner's invitation, all members in the room will receive an
onAnchorEnterSeat
notification.
- (void)pickSeat:(NSString *)userID callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(pickSeat(userID:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
UserID | String | User ID |
callback | ActionCallback | Callback for operation |
Calling this API will immediately modify the seat list. In cases where the room owner needs listeners’ consent to make them speakers, you can call sendInvitation
first to send a request and, after receiving onInvitationAccept
, call pickSeat
.
This API is used to remove a speaker (called by room owner).
Note:After a speaker is removed, all members in the room will receive an
onSeatListChange
notification and anonAnchorLeaveSeat
notification.
- (void)kickSeat:(NSString *)userID callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(kickSeat(userID:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userID | String | User ID of the speaker to remove |
callback | ActionCallback | Callback for operation |
Calling this API will immediately modify the speaker list.
This API is used to enable mic capturing.
- (void)startMicrophone;
This API is used to stop mic capturing.
- (void)stopMicrophone;
This API is used to set the audio quality.
- (void)setAuidoQuality:(NSInteger)quality NS_SWIFT_NAME(setAuidoQuality(quality:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
quality | int | Audio quality. For more information, please see TRTC SDK. |
This API is used to mute/unmute the local audio.
- (void)muteLocalAudio:(BOOL)mute NS_SWIFT_NAME(muteLocalAudio(mute:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
mute | boolean | Mutes/Unmutes. For more information, please see TRTC SDK. |
This API is used to turn the speaker on.
- (void)setSpeaker:(BOOL)userSpeaker NS_SWIFT_NAME(setSpeaker(userSpeaker:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userSpeaker | boolean | true : speaker; false : receiver |
This API is used to set the mic capturing volume.
- (void)setAudioCaptureVolume:(NSInteger)voluem NS_SWIFT_NAME(setAudioCaptureVolume(volume:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
volume | int | Capturing volume. Value range: 0-100 (default: 100) |
This API is used to set the playback volume.
- (void)setAudioPlayoutVolume:(NSInteger)volume NS_SWIFT_NAME(setAudioPlayoutVolume(volume:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
volume | int | Playback volume. Value range: 0-100 (default: 100) |
This API is used to mute/unmute a specified user.
- (void)muteRemoteAudio:(NSString *)userID mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudio(userId:mute:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userId | String | Specified user ID |
mute | boolean | true : mute; false : unmute |
This API is used to mute/unmute all users.
- (void)muteAllRemoteAudio:(BOOL)isMute NS_SWIFT_NAME(muteAllRemoteAudio(isMute:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
isMute | boolean | true : mute; false : unmute |
This API is used to get the background music and audio effect management object TXAudioEffectManager.
- (TXAudioEffectManager * _Nullable)getAudioEffectManager;
This API is used to broadcast a text message in a room, which is generally used for on-screen comments.
- (void)sendRoomTextMsg:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomTextMsg(message:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
message | String | Text message |
callback | ActionCallback | Callback for operation |
This API is used to send a custom text message.
- (void)sendRoomCustomMsg:(NSString *)cmd message:(NSString *)message callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendRoomCustomMsg(cmd:message:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
cmd | String | Custom command word used to distinguish between different message types |
message | String | Text message |
callback | ActionCallback | Callback for operation |
This API is used to send an invitation.
- (NSString *)sendInvitation:(NSString *)cmd
userID:(NSString *)userID
content:(NSString *)content
callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(sendInvitation(cmd:userId:content:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
cmd | String | Custom command of business |
userID | String | Invitee’s user ID |
content | String | Invitation content |
callback | ActionCallback | Callback for operation |
Returned value:
Returned Value | Type | Description |
---|---|---|
inviteId | String | Invitation ID |
This API is used to accept an invitation.
- (void)acceptInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(acceptInvitation(identifier:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
callback | ActionCallback | Callback for sending result |
This API is used to decline an invitation.
- (void)rejectInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(rejectInvitation(identifier:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
callback | ActionCallback | Callback for sending result |
This API is used to cancel an invitation.
- (void)cancelInvitation:(NSString *)identifier callback:(ActionCallback _Nullable)callback NS_SWIFT_NAME(cancelInvitation(identifier:callback:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
callback | ActionCallback | Callback for sending result |
Callback for error.
Note:This callback indicates that the SDK encountered an unrecoverable error. Such errors must be listened for, and UI reminders should be sent to users if necessary.
- (void)onError:(int)code
message:(NSString*)message
NS_SWIFT_NAME(onError(code:message:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
code | int | Error code |
message | String | Error message |
Callback for warning.
- (void)onWarning:(int)code
message:(NSString *)message
NS_SWIFT_NAME(onWarning(code:message:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
code | int | Error code |
message | String | Warning message |
Callback for log.
- (void)onDebugLog:(NSString *)message
NS_SWIFT_NAME(onDebugLog(message:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
message | String | Log information |
Callback for room termination. When the owner terminates the room, all users in the room will receive this callback.
- (void)onRoomDestroy:(NSString *)message
NS_SWIFT_NAME(onRoomDestroy(message:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
roomId | String | Room ID. |
Callback for successful room entry. The information in roomInfo
is passed in by the room owner during room creation.
- (void)onRoomInfoChange:(ChatSalonInfo *)roomInfo
NS_SWIFT_NAME(onRoomInfoChange(roomInfo:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
roomInfo | ChatSalonInfo | Room information |
Callback of the volume of each member in the room after the volume reminder is enabled.
- (void)onUserVolumeUpdate:(NSArray<TRTCVolumeInfo *> *)userVolumes totalVolume:(NSInteger)totalVolume
NS_SWIFT_NAME(onUserVolumeUpdate(userVolumes:totalVolume:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userVolumes | NSArray<TRTCVolumeInfo *> | Volume of each user |
totalVolume | int | Overall volume |
Someone became a speaker after requesting or being invited by the room owner.
- (void)onAnchorEnterSeat:(ChatSalonUserInfo *)user
NS_SWIFT_NAME(onAnchorEnterSeat(user:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
user | ChatSalonUserInfo | Details of the user who became a speaker |
A speaker became a listener or was moved to listeners by the room owner.
- (void)onAnchorLeaveSeat:(ChatSalonUserInfo *)user
NS_SWIFT_NAME(onAnchorLeaveSeat(user:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
user | ChatSalonUserInfo | Details of the user who became a speaker |
The room owner muted a seat.
- (void)onSeatMute:(NSString *)userID
isMute:(BOOL)isMute
NS_SWIFT_NAME(onSeatMute(userID:isMute:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userID | String | ID of the speaker muted |
isMute | boolean | true : muted; false : unmuted |
A listener entered the room.
- (void)onAudienceEnter:(ChatSalonUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceEnter(userInfo:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userInfo | ChatSalonUserInfo | Information of the user who entered the room |
A listener exited the room.
- (void)onAudienceExit:(ChatSalonUserInfo *)userInfo
NS_SWIFT_NAME(onAudienceExit(userInfo:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
userInfo | ChatSalonUserInfo | Information of the user who exited the room |
A text message was received.
- (void)onRecvRoomTextMsg:(NSString *)message
userInfo:(ChatSalonUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomTextMsg(message:userInfo:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
message | String | Text message |
userInfo | ChatSalonUserInfo | User information of sender |
A custom message was received.
- (void)onRecvRoomCustomMsg:(NSString *)cmd
message:(NSString *)message
userInfo:(ChatSalonUserInfo *)userInfo
NS_SWIFT_NAME(onRecvRoomCustomMsg(cmd:message:userInfo:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
cmd | String | Custom command word used to distinguish between different message types |
message | String | Text message |
userInfo | ChatSalonUserInfo | User information of sender |
An invitation was received.
- (void)onReceiveNewInvitation:(NSString *)identifier
inviter:(NSString *)inviter
cmd:(NSString *)cmd
content:(NSString *)content
NS_SWIFT_NAME(onReceiveNewInvitation(identifier:inviter:cmd:content:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID. |
inviter | String | Inviter’s user ID |
cmd | String | Custom command word specified by business |
content | String | Content specified by business |
The invitee accepted the invitation.
- (void)onInviteeAccepted:(NSString *)identifier
invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeAccepted(identifier:invitee:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
invitee | String | Invitee’s user ID |
The invitee declined the invitation.
- (void)onInviteeRejected:(NSString *)identifier
invitee:(NSString *)invitee
NS_SWIFT_NAME(onInviteeRejected(identifier:invitee:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
invitee | String | Invitee’s user ID |
The inviter canceled the invitation.
- (void)onInvitationCancelled:(NSString *)identifier
invitee:(NSString *)invitee NS_SWIFT_NAME(onInvitationCancelled(identifier:invitee:));
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID. |
invitee | String | Invitee’s user ID |
The invitation timed out.
- (void)onInvitationTimeout:(NSString *)identifier;
The parameters are as detailed below:
Parameter | Type | Description |
---|---|---|
identifier | String | Invitation ID |
Was this page helpful?