- 环信IM部分
IEMChatManager
// 给chatManager添加代理self
[EMClient.sharedClient.chatManager addDelegate:self delegateQueue:nil];
// 实现两个代理方法
- (void)cmdMessagesDidReceive:(NSArray *)aCmdMessages {
// aCmdMessages中的对象类型是EMMessage
}
- (void)messagesDidReceive:(NSArray *)aMessages {
// aMessages中的对象类型是EMMessage
}
IEMChatroomManager
// 给roomManager添加代理self
[EMClient.sharedClient.roomManager addDelegate:self delegateQueue:nil];
// 有人加入的聊天室的时候会触发这个代理
- (void)userDidJoinChatroom:(EMChatroom *)aChatroom user:(NSString *)aUsername {
// 只能获取到在环信注册的用户名
}
- 环信的音视频部分(业务只用到音频)
EMConferenceManagerDelegate
// 给conferenceManager添加代理self
[EMClient.sharedClient.conferenceManager addDelegate:self delegateQueue:nil];
// 加入语音房间
// 这里可以设置roomConfig的时候带入用户的昵称头像等信息
// role为加入房间时候的角色Admin>Speaker>Audience,当role = Audience时,其他人无法通过memberDidJoin:member:代理方法获取你的头像昵称等信息
[EMClient.sharedClient.conferenceManager joinRoom: password: role: roomConfig: completion:];
// 有人加入房间会触发代理方法
- (void)memberDidJoin:(EMCallConference *)aConference member:(EMCallMember *)aMember {
// 这里的aMember中就包含了用户设置roomConfig时的头像昵称等信息
}
// 在这个代理方法中订阅其他用户发出的数据流
- (void)streamDidUpdate:(EMCallConference *)aConference addStream:(EMCallStream *)aStream {
// 订阅流
[EMClient.sharedClient.conferenceManager subscribeConference:aConference
streamId:aStream.streamId
remoteVideoView:nil completion:^(EMError *aError) {
}];
}
网友评论