HyphenateSDK  3.7.4
构造函数 | 所有成员列表
<IEMConferenceManager>协议 参考

#import <IEMConferenceManager.h>

类 <IEMConferenceManager> 继承关系图:

构造函数

(void) - addDelegate:delegateQueue:
 
(void) - removeDelegate:
 
(void) - addLocalAudioDataDelegate:delegateQueue:
 
(void) - removeLocalAudioDataDelegate:
 
(void) - addRemoteAudioDataDelegate:delegateQueue:
 
(void) - removeRemoteAudioDataDelegate:
 
(void) - setAppkey:username:token:
 
(NSString *) - getMemberNameWithAppkey:username:
 
(void) - getConference:password:completion:
 
(void) - createAndJoinConferenceWithType:password:completion:
 
(void) - createAndJoinConferenceWithType:password:record:mergeStream:completion:
 
(void) - createAndJoinConferenceWithType:password:record:mergeStream:isSupportWechatMiniProgram:completion:
 
(void) - createAndJoinConferenceWithType:password:record:mergeStream:isSupportWechatMiniProgram:liveConfig:maxVideoCount:maxTalkerCount:maxAudienceCount:completion:
 
(void) - createAndJoinConferenceWithType:password:confrConfig:completion:
 
(void) - joinConferenceWithConfId:password:completion:
 
(void) - joinConferenceWithConfId:password:role:completion:
 
(void) - joinRoom:password:role:completion:
 
(void) - joinRoom:password:role:roomConfig:completion:
 
(void) - joinConferenceWithTicket:completion:
 
(void) - publishConference:streamParam:completion:
 
(void) - unpublishConference:streamId:completion:
 
(void) - subscribeConference:streamId:remoteVideoView:completion:
 
(void) - unsubscribeConference:streamId:completion:
 
(void) - changeMemberRoleWithConfId:member:role:completion:
 
(void) - changeMemberRoleWithConfId:memberName:role:completion:
 
(void) - kickMemberWithConfId:memberNames:completion:
 
(void) - destroyConferenceWithId:completion:
 
(void) - leaveConference:completion:
 
(void) - startMonitorSpeaker:timeInterval:completion:
 
(void) - stopMonitorSpeaker:
 
(void) - updateConference:setRegions:completion:
 
(void) - updateConference:liveId:setRegions:completion:
 
(void) - addConferenceLive:LiveCfg:completion:
 
(void) - enableRecordLiveStream:liveId:enabled:completion:
 
(void) - deleteConferenceLive:liveId:completion:
 
(void) - requestTobeSpeaker:adminId:completion:
 
(void) - requestTobeAdmin:adminId:completion:
 
(void) - setMuteMember:memId:mute:completion:
 
(void) - responseReqSpeaker:memId:result:completion:
 
(void) - responseReqAdmin:memId:result:completion:
 
(void) - updateConferenceWithSwitchCamera:
 
(void) - updateConference:isMute:
 
(void) - updateConference:enableVideo:
 
(void) - updateConference:streamId:remoteVideoView:completion:
 
(void) - updateConference:maxVideoKbps:
 
(void) - inputVideoSampleBuffer:rotation:conference:publishedStreamId:completion:
 
(void) - inputVideoPixelBuffer:sampleBufferTime:rotation:conference:publishedStreamId:completion:
 
(void) - setConferenceAttribute:value:completion:
 
(void) - deleteAttributeWithKey:completion:
 
(void) - createWhiteboardRoomWithUsername:userToken:roomName:roomPassword:interact:completion:
 
(void) - createWhiteboardRoomWithUsername:userToken:roomName:roomPassword:config:completion:
 
(void) - destroyWhiteboardRoomWithUsername:userToken:roomId:completion:
 
(void) - joinWhiteboardRoomWithId:username:userToken:roomPassword:completion:
 
(void) - joinWhiteboardRoomWithName:username:userToken:roomPassword:completion:
 
(void) - updateWhiteboardRoomWithRoomId:username:userToken:intract:allUsers:serventIds:completion:
 
(EMError *) - startAudioMixing:loop:sendMix:
 
(EMError *) - stopAudioMixing
 
(EMError *) - adjustAudioMixingVolume:
 
(void) - muteRemoteAudio:mute:
 
(void) - muteRemoteVideo:mute:
 
(void) - enableStatistics:
 
(void) - muteAll:completion:
 
(int) - inputCustomAudioData:
 
(void) - addVideoWatermark:
 
(void) - clearVideoWatermark
 
(void) - inputVideoSampleBuffer:conference:publishedStreamId:format:rotation:completion:
 
(void) - inputVideoPixelBuffer:conference:publishedStreamId:format:rotation:completion:
 
(void) - inputVideoData:conference:publishedStreamId:widthInPixels:heightInPixels:format:rotation:completion:
 
(EMConferenceMode mode) - EM_DEPRECATED_IOS
 
(void) - createAndJoinConferenceWithPassword:completion:
 
(void) - inviteUserToJoinConference:userName:password:ext:error:
 
(void) - changeMemberRoleWithConfId:memberNames:role:completion:
 

详细描述

多人实时音频/视频通话相关操作

函数文档

◆ addConferenceLive:LiveCfg:completion:

- (void) addConferenceLive: (EMCallConference *)  aCall
LiveCfg: (LiveConfig *)  aLiveConfig
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

添加一路推流

参数
aCall会议实例(自己创建的无效)
aLiveConfig推流配置
aCompletionBlock回调函数

◆ addDelegate:delegateQueue:

- (void) addDelegate: (id< EMConferenceManagerDelegate >)  aDelegate
delegateQueue: (dispatch_queue_t)  aQueue 
optional

添加回调代理

参数
aDelegate要添加的代理
aQueue执行代理方法的队列

◆ addLocalAudioDataDelegate:delegateQueue:

- (void) addLocalAudioDataDelegate: (id< EMLocalAudioDataDelegate >)  aDelegate
delegateQueue: (dispatch_queue_t)  aQueue 
optional

添加回调代理

参数
aDelegate要添加的代理
aQueue执行代理方法的队列

◆ addRemoteAudioDataDelegate:delegateQueue:

- (void) addRemoteAudioDataDelegate: (id< EMRemoteAudioDataDelegate >)  aDelegate
delegateQueue: (dispatch_queue_t)  aQueue 
optional

添加回调代理

参数
aDelegate要添加的代理
aQueue执行代理方法的队列

◆ addVideoWatermark:

- (void) addVideoWatermark: (EMWaterMarkOption *)  option
optional

开启水印功能

参数
option水印配置项,包括图片url,marginX,marginY以及起始点

◆ adjustAudioMixingVolume:

- (EMError *) adjustAudioMixingVolume: (int)  aVolume
optional

设置伴奏音量,请在加入会议成功后调用

参数
volume伴奏音量范围为 0~100。默认 100 为原始文件音量
返回
EMError#EM_NO_ERROR - 成功 EMError#CALL_CONFERENCE_NO_EXIST - 未加入会议

◆ changeMemberRoleWithConfId:member:role:completion:

- (void) changeMemberRoleWithConfId: (NSString *)  aConfId
member: (EMCallMember *)  aMember
role: (EMConferenceRole)  toRole
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

改变成员角色,需要管理员权限 用户角色: Admin > Talker > Audience 当角色升级时,用户需要给管理员发送申请,管理通过该接口改变用户接口. 当角色降级时,用户直接调用该接口即可. 注意: 暂时不支持Admin降级自己

参数
aConfId会议ID(EMCallConference.confId)
aMember成员
aRole成员角色
aCompletionBlock完成的回调

◆ changeMemberRoleWithConfId:memberName:role:completion:

- (void) changeMemberRoleWithConfId: (NSString *)  aConfId
memberName: (NSString *)  aMemberName
role: (EMConferenceRole)  toRole
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

改变成员角色,需要管理员权限 用户角色: Admin > Talker > Audience 当角色升级时,用户需要给管理员发送申请,管理通过该接口改变用户接口. 当角色降级时,用户直接调用该接口即可. 注意: 暂时不支持Admin降级自己

参数
aConfId会议ID(EMCallConference.confId)
aMemberName成员在会议中的memName
aRole成员角色
aCompletionBlock完成的回调

◆ changeMemberRoleWithConfId:memberNames:role:completion:

- (void) changeMemberRoleWithConfId: (NSString *)  aConfId
memberNames: (NSArray< NSString * > *)  aMemberNameList
role: (EMConferenceRole)  aRole
completion: (3_5_0) 
(3_6_0) 
("Use -")  EM_DEPRECATED_IOS[changeMemberRoleWithConfId:memberName:role:completion] 
optional

改变成员角色,需要管理员权限

参数
aConfId会议ID(EMCallConference.confId)
aMemberNameList成员名列表
aRole成员角色
aCompletionBlock完成的回调

◆ clearVideoWatermark

- (void) clearVideoWatermark
optional

取消水印功能

◆ createAndJoinConferenceWithPassword:completion:

- (void) createAndJoinConferenceWithPassword: (NSString *)  aPassword
completion: (3_1_0) 
(3_4_3) 
("Use -")  EM_DEPRECATED_IOS[EMConferenceManagerDelegate createAndJoinConferenceWithType:password:completion:] 
optional

创建并加入会议

参数
aPassword会议密码
aCompletionBlock完成的回调

◆ createAndJoinConferenceWithType:password:completion:

- (void) createAndJoinConferenceWithType: (EMConferenceType)  aType
password: (NSString *)  aPassword
completion: (void(^)(EMCallConference *aCall, NSString *aPassword, EMError *aError))  aCompletionBlock 
optional

创建并加入会议

参数
aType会议类型
aPassword会议密码
aCompletionBlock完成的回调

◆ createAndJoinConferenceWithType:password:confrConfig:completion:

- (void) createAndJoinConferenceWithType: (EMConferenceType)  aType
password: (NSString *)  aPassword
confrConfig: (RoomConfig *)  aConfrConfig
completion: (void(^)(EMCallConference *aCall, NSString *aPassword, EMError *aError))  aCompletionBlock 
optional

创建并加入会议

参数
aType会议类型
aPassword会议密码
aConfrConfig会议属性配置
aCompletionBlock完成的回调

◆ createAndJoinConferenceWithType:password:record:mergeStream:completion:

- (void) createAndJoinConferenceWithType: (EMConferenceType)  aType
password: (NSString *)  aPassword
record: (BOOL)  isRecord
mergeStream: (BOOL)  isMerge
completion: (void(^)(EMCallConference *aCall, NSString *aPassword, EMError *aError))  aCompletionBlock 
optional

创建并加入会议

参数
aType会议类型
aPassword会议密码
isRecord是否开启服务端录制
isMerge录制时是否合并数据流
aCompletionBlock完成的回调

◆ createAndJoinConferenceWithType:password:record:mergeStream:isSupportWechatMiniProgram:completion:

- (void) createAndJoinConferenceWithType: (EMConferenceType)  aType
password: (NSString *)  aPassword
record: (BOOL)  isRecord
mergeStream: (BOOL)  isMerge
isSupportWechatMiniProgram: (BOOL)  isSupportWechatMiniProgram
completion: (void(^)(EMCallConference *aCall, NSString *aPassword, EMError *aError))  aCompletionBlock 
optional

创建并加入会议,支持微信小程序设置

参数
aType会议类型
aPassword会议密码
isRecord是否开启服务端录制
isMerge录制时是否合并数据流
isSupportWechatMiniProgram是否支持微信小程序
aCompletionBlock完成的回调

◆ createAndJoinConferenceWithType:password:record:mergeStream:isSupportWechatMiniProgram:liveConfig:maxVideoCount:maxTalkerCount:maxAudienceCount:completion:

- (void) createAndJoinConferenceWithType: (EMConferenceType)  aType
password: (NSString *)  aPassword
record: (BOOL)  isRecord
mergeStream: (BOOL)  isMerge
isSupportWechatMiniProgram: (BOOL)  isSupportWechatMiniProgram
liveConfig: (LiveConfig *)  aLiveConfig
maxVideoCount: (NSInteger)  aMaxVideoCount
maxTalkerCount: (NSInteger)  aMaxTalkerCount
maxAudienceCount: (NSInteger)  aMaxAudienceCount
completion: (void(^)(EMCallConference *aCall, NSString *aPassword, EMError *aError))  aCompletionBlock 
optional

创建并加入会议,支持微信小程序设置,cdn推流设置,最大主播人数及视频人数设置

参数
aType会议类型
aPassword会议密码
isRecord是否开启服务端录制
isMerge录制时是否合并数据流
isSupportWechatMiniProgram是否支持微信小程序
liveConfig推流时使用的cdn布局
aMaxVideoCount会议中的最大视频数
aMaxTalkerCount会议中最大主播人数
aMaxAudienceCount会议中最大观众人数
aCompletionBlock完成的回调

◆ createWhiteboardRoomWithUsername:userToken:roomName:roomPassword:config:completion:

- (void) createWhiteboardRoomWithUsername: (NSString *_Nonnull)  aUsername
userToken: (NSString *_Nonnull)  aToken
roomName: (NSString *_Nonnull)  aRoomName
roomPassword: (NSString *_Nonnull)  aPassword
config: (EMWhiteboardConfig *)  aWBConfig
completion: (void(^)(EMWhiteboard *aWhiteboard, EMError *aError))  aCompletionBlock 
optional

创建白板房间

参数
aUsername用户名
aToken用户的token
aRoomName房间名
aPassword房间的密码
aWBConfig白板房间配置
aCompletionBlock请求完成的回调

◆ createWhiteboardRoomWithUsername:userToken:roomName:roomPassword:interact:completion:

- (void) createWhiteboardRoomWithUsername: (NSString *_Nonnull)  aUsername
userToken: (NSString *_Nonnull)  aToken
roomName: (NSString *_Nonnull)  aRoomName
roomPassword: (NSString *_Nonnull)  aPassword
interact: (BOOL)  aInteract
completion: (void(^)(EMWhiteboard *aWhiteboard, EMError *aError))  aCompletionBlock 
optional

创建白板房间

参数
aUsername用户名
aToken用户的token
aRoomName房间名
aPassword房间的密码
bInteract是否允许互动
aCompletionBlock请求完成的回调

◆ deleteAttributeWithKey:completion:

- (void) deleteAttributeWithKey: (NSString *)  aKey
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

删除频道属性,该会议中的所有人(包括自己)都会收到 EMConferenceManagerDelegate#conferenceAttributeUpdated:attributeAction:attributeKey:回调. 该方法需要在加入会议后调用.

参数
aKey
aCompletionBlock

◆ deleteConferenceLive:liveId:completion:

- (void) deleteConferenceLive: (EMCallConference *)  aCall
liveId: (NSString *)  aLiveId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

删除一路推流

参数
aCall会议实例(自己创建的无效)
aLiveId流Id
aCompletionBlock回调函数

◆ destroyConferenceWithId:completion:

- (void) destroyConferenceWithId: (NSString *)  aConfId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

销毁会议,需要管理员权限

参数
aConfId会议ID(EMCallConference.confId)
aCompletionBlock完成的回调

◆ destroyWhiteboardRoomWithUsername:userToken:roomId:completion:

- (void) destroyWhiteboardRoomWithUsername: (NSString *)  aUsername
userToken: (NSString *)  aToken
roomId: (NSString *)  aRoomId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

销毁白板房间

参数
aUsername用户名
aToken用户的token
aRoomId房间id
aCompletionBlock请求完成的回调

◆ EM_DEPRECATED_IOS

- (EMConferenceMode mode) EM_DEPRECATED_IOS (3_1_0) 
(3_4_3) 
("Use -DELETE")   
readwriteoptionalnonatomicassign

多人会议场景

◆ enableRecordLiveStream:liveId:enabled:completion:

- (void) enableRecordLiveStream: (EMCallConference *)  aCall
liveId: (NSString *)  aLiveId
enabled: (BOOL)  aEnabled
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

启动/停止自定义录制

参数
aCall会议实例(自己创建的无效)
aLiveId推流/录制Id
aEnabled操作,启动/停止
aCompletionBlock回调函数

◆ enableStatistics:

- (void) enableStatistics: (BOOL)  isEnable
optional

启用统计

参数
enable是否启用统计

◆ getConference:password:completion:

- (void) getConference: (NSString *)  aConfId
password: (NSString *)  aPassword
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

判断会议是否存在

参数
aConfId会议ID(EMCallConference.confId)
aPassword会议密码
aCompletionBlock完成的回调

◆ getMemberNameWithAppkey:username:

- (NSString *) getMemberNameWithAppkey: (NSString *)  aAppkey
username: (NSString *)  aUserName 
optional

构建MemberName

参数
aAppkey应用在环信注册的Appkey
aUserName环信ID
返回
MemberName

◆ inputCustomAudioData:

- (int) inputCustomAudioData: (NSData *)  data
optional

自定义外部音频数据,PCM格式,一个音频采样16bit,每次最大100ms数据

参数
data外部音频数据

◆ inputVideoData:conference:publishedStreamId:widthInPixels:heightInPixels:format:rotation:completion:

- (void) inputVideoData: (NSData *)  aData
conference: (EMCallConference *)  aCall
publishedStreamId: (NSString *)  aPubStreamId
widthInPixels: (size_t)  aWidth
heightInPixels: (size_t)  aHeight
format: (EMCallVideoFormat)  aFormat
rotation: (int)  aRotation
completion: (3_2_2) 
(3_5_2) 
("Delete")  EM_DEPRECATED_IOS 
optional

自定义本地视频数据

参数
aData视频数据
aCall会议实例
aPubStreamId调用接口[EMConferenceManager publishConference:streamParam:completion],如果成功则会在回调中返回该值
aWidth宽度
aHeight高度
aFormat视频格式
aRotation旋转角度0~360,默认0
aCompletionBlock完成后的回调

◆ inputVideoPixelBuffer:conference:publishedStreamId:format:rotation:completion:

- (void) inputVideoPixelBuffer: (CVPixelBufferRef)  aPixelBuffer
conference: (EMCallConference *)  aCall
publishedStreamId: (NSString *)  aPubStreamId
format: (EMCallVideoFormat)  aFormat
rotation: (int)  aRotation
completion: (3_2_2) 
(3_5_2) 
(")  Delete
(Use -inputVideoPixelBuffer:sampleBufferTime:rotation:conference:publishedStreamId:completion:")  EM_DEPRECATED_IOS 
optional

自定义本地视频数据

参数
aPixelBuffer视频像素缓冲区
aCall会议实例
aPubStreamId调用接口[EMConferenceManager publishConference:streamParam:completion],如果成功则会在回调中返回该值
aFormat视频格式
aRotation旋转角度0~360,默认0
aCompletionBlock完成后的回调

◆ inputVideoPixelBuffer:sampleBufferTime:rotation:conference:publishedStreamId:completion:

- (void) inputVideoPixelBuffer: (CVPixelBufferRef)  aPixelBuffer
sampleBufferTime: (CMTime)  aTime
rotation: (UIDeviceOrientation)  aRotation
conference: (EMCallConference *)  aCall
publishedStreamId: (NSString *)  aPubStreamId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

自定义本地视频数据

参数
aPixelBuffer视频像素缓冲区
aTime视频原始数据时间戳,CMTime time = CMSampleBufferGetPresentationTimeStamp((CMSampleBufferRef)sampleBuffer);
aRotation旋转方向
aCall会议实例
aPubStreamId调用接口[EMConferenceManager publishConference:streamParam:completion],如果成功则会在回调中返回该值
aCompletionBlock完成后的回调

◆ inputVideoSampleBuffer:conference:publishedStreamId:format:rotation:completion:

- (void) inputVideoSampleBuffer: (CMSampleBufferRef)  aSampleBuffer
conference: (EMCallConference *)  aCall
publishedStreamId: (NSString *)  aPubStreamId
format: (EMCallVideoFormat)  aFormat
rotation: (int)  aRotation
completion: (3_2_2) 
(3_5_2) 
(")  Delete
(Use -inputVideoSampleBuffer:rotation:conference:publishedStreamId:completion:")  EM_DEPRECATED_IOS 
optional

自定义本地视频数据

参数
aSampleBuffer视频采样缓冲区
aCall会议实例
aPubStreamId调用接口[EMConferenceManager publishConference:streamParam:completion],如果成功则会在回调中返回该值
aFormat视频格式
aRotation旋转角度0~360,默认0
aCompletionBlock完成后的回调

◆ inputVideoSampleBuffer:rotation:conference:publishedStreamId:completion:

- (void) inputVideoSampleBuffer: (CMSampleBufferRef)  aSampleBuffer
rotation: (UIDeviceOrientation)  aRotation
conference: (EMCallConference *)  aCall
publishedStreamId: (NSString *)  aPubStreamId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

自定义本地视频数据

参数
aSampleBuffer视频采样缓冲区
aRotation旋转方向
aCall会议实例
aPubStreamId调用接口[EMConferenceManager publishConference:streamParam:completion],如果成功则会在回调中返回该值
aCompletionBlock完成后的回调

◆ inviteUserToJoinConference:userName:password:ext:error:

- (void) inviteUserToJoinConference: (EMCallConference *)  aCall
userName: (NSString *)  aUserName
password: (NSString *)  aPassword
ext: (NSString *)  aExt
error: (3_1_0) 
(3_4_3) 
("Use -)  DELETE
(在demo层自定义实现")  EM_DEPRECATED_IOS 
optional

邀请人加入会议

参数
aCall会议实例(自己创建的无效)
aUserName被邀请人的环信ID
aPassword会议密码
aExt扩展信息
aCompletionBlock完成的回调

◆ joinConferenceWithConfId:password:completion:

- (void) joinConferenceWithConfId: (NSString *)  aConfId
password: (NSString *)  aPassword
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

加入已有会议

参数
aConfId会议ID(EMCallConference.confId)
aPassword会议密码
aCompletionBlock完成的回调

◆ joinConferenceWithConfId:password:role:completion:

- (void) joinConferenceWithConfId: (NSString *)  aConfId
password: (NSString *)  aPassword
role: (EMConferenceRole)  aRole
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

加入已有会议

参数
aConfId会议ID(EMCallConference.confId)
aPassword会议密码
aRole加入会议使用的角色
aCompletionBlock完成的回调

◆ joinConferenceWithTicket:completion:

- (void) joinConferenceWithTicket: (NSString *)  aTicket
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

加入已有会议

参数
aTicket加入会议的凭证
aCompletionBlock完成的回调

◆ joinRoom:password:role:completion:

- (void) joinRoom: (NSString *)  roomName
password: (NSString *)  aPassword
role: (EMConferenceRole)  role
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

加入房间

参数
roomName房间名称
aPassword房间密码
role加入房间使用的角色
aCompletionBlock完成的回调

◆ joinRoom:password:role:roomConfig:completion:

- (void) joinRoom: (NSString *)  roomName
password: (NSString *)  aPassword
role: (EMConferenceRole)  role
roomConfig: (RoomConfig *)  roomConfig
completion: (void(^)(EMCallConference *aCall, EMError *aError))  aCompletionBlock 
optional

加入房间

参数
roomName房间名称
aPassword房间密码
role加入房间使用的角色
roomConfig加入房间使用的配置
aCompletionBlock完成的回调

◆ joinWhiteboardRoomWithId:username:userToken:roomPassword:completion:

- (void) joinWhiteboardRoomWithId: (NSString *)  aRoomId
username: (NSString *)  aUsername
userToken: (NSString *)  aToken
roomPassword: (NSString *)  aPassword
completion: (void(^)(EMWhiteboard *aWhiteboard, EMError *aError))  aCompletionBlock 
optional

通过白板id加入房间

参数
aRoomId房间id
aUsername用户名
aToken用户的token
aPassword房间的密码
aCompletionBlock请求完成的回调

◆ joinWhiteboardRoomWithName:username:userToken:roomPassword:completion:

- (void) joinWhiteboardRoomWithName: (NSString *)  aRoomName
username: (NSString *)  aUsername
userToken: (NSString *)  aToken
roomPassword: (NSString *)  aPassword
completion: (void(^)(EMWhiteboard *aWhiteboard, EMError *aError))  aCompletionBlock 
optional

通过白板名称加入房间

参数
aRoomName房间名
aUsername用户名
aToken用户的token
aPassword房间的密码
aCompletionBlock请求完成的回调

◆ kickMemberWithConfId:memberNames:completion:

- (void) kickMemberWithConfId: (NSString *)  aConfId
memberNames: (NSArray< NSString * > *)  aMemberNameList
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

踢人,需要管理员权限

参数
aConfId会议ID(EMCallConference.confId)
aMemberNameList成员名列表
aCompletionBlock完成的回调

◆ leaveConference:completion:

- (void) leaveConference: (EMCallConference *)  aCall
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

离开会议(创建者可以离开,最后一个人离开,会议销毁)

参数
aCall会议实例(自己创建的无效)
aCompletionBlock完成的回调

◆ muteAll:completion:

- (void) muteAll: (BOOL)  mute
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

开启/停止全体静音

参数
enable是否启用全体静音
completion回调

◆ muteRemoteAudio:mute:

- (void) muteRemoteAudio: (NSString *)  aStreamId
mute: (BOOL)  isMute 
optional

mute远端音频

参数
aStreamId要操作的Steam id
isMute是否静音

◆ muteRemoteVideo:mute:

- (void) muteRemoteVideo: (NSString *)  aStreamId
mute: (BOOL)  isMute 
optional

mute远端视频

参数
aStreamId要操作的Steam id
isMute是否显示

◆ publishConference:streamParam:completion:

- (void) publishConference: (EMCallConference *)  aCall
streamParam: (EMStreamParam *)  aStreamParam
completion: (void(^)(NSString *aPubStreamId, EMError *aError))  aCompletionBlock 
optional

上传本地摄像头的数据流

参数
aCall会议实例(自己创建的无效)
aStreamParam数据流的配置项
aCompletionBlock完成的回调

◆ removeDelegate:

- (void) removeDelegate: (id< EMConferenceManagerDelegate >)  aDelegate
optional

移除回调代理

参数
aDelegate要移除的代理

◆ removeLocalAudioDataDelegate:

- (void) removeLocalAudioDataDelegate: (id< EMLocalAudioDataDelegate >)  aDelegate
optional

移除回调代理

参数
aDelegate要移除的代理

◆ removeRemoteAudioDataDelegate:

- (void) removeRemoteAudioDataDelegate: (id< EMRemoteAudioDataDelegate >)  aDelegate
optional

移除回调代理

参数
aDelegate要移除的代理

◆ requestTobeAdmin:adminId:completion:

- (void) requestTobeAdmin: (EMCallConference *)  aCall
adminId: (NSString *)  aAdminId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

主播申请成为管理员,主播角色调用

参数
aCall会议实例(自己创建的无效)
aAdminId管理员的memId
aCompletionBlock回调函数

◆ requestTobeSpeaker:adminId:completion:

- (void) requestTobeSpeaker: (EMCallConference *)  aCall
adminId: (NSString *)  aAdminId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

观众申请连麦成为主播,观众角色调用

参数
aCall会议实例(自己创建的无效)
aAdminId管理员的memId
aCompletionBlock回调函数

◆ responseReqAdmin:memId:result:completion:

- (void) responseReqAdmin: (EMCallConference *)  aCall
memId: (NSString *)  aMemId
result: (NSInteger)  aResult
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

管理员同意/拒绝主播的申请管理员请求,管理员调用

参数
aCall会议实例(自己创建的无效)
aMemId申请管理员的主播的memId
aResult操作结果,0为同意,1为拒绝
aCompletionBlock回调函数

◆ responseReqSpeaker:memId:result:completion:

- (void) responseReqSpeaker: (EMCallConference *)  aCall
memId: (NSString *)  aMemId
result: (NSInteger)  aResult
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

管理员同意/拒绝观众的上麦申请,管理员调用

参数
aCall会议实例(自己创建的无效)
aMemId上麦申请的观众的memId
aResult操作结果,0为同意,1为拒绝
aCompletionBlock回调函数

◆ setAppkey:username:token:

- (void) setAppkey: (NSString *)  aAppkey
username: (NSString *)  aUsername
token: (NSString *)  aToken 
optional

设置应用Appkey, 环信ID, 环信ID对应的Token

参数
aAppkey应用在环信注册的Appkey
aUserName环信ID
aToken环信ID对应的Token

◆ setConferenceAttribute:value:completion:

- (void) setConferenceAttribute: (NSString *)  attrKey
value: (NSString *)  attrValue
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

设置频道属性,该会议中的所有人(包括自己)都会收到 EMConferenceManagerDelegate#conferenceAttributeUpdated:attributeAction:attributeKey:回调. 该方法需要在加入会议后调用.

参数
attrKey
attrValue
aCompletionBlock

◆ setMuteMember:memId:mute:completion:

- (void) setMuteMember: (EMCallConference *)  aCall
memId: (NSString *)  aMemId
mute: (BOOL)  aMute
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

将指定成员静音/解除静音,管理员调用

参数
aCall会议实例(自己创建的无效)
aMemId指定成员的memId
aMute操作,YES为静音,NO为解除静音
aCompletionBlock回调函数

◆ startAudioMixing:loop:sendMix:

- (EMError *) startAudioMixing: (NSURL *)  aFileURL
loop: (int)  aLoop
sendMix: (BOOL)  isSendMix 
optional

开启本地伴音功能,请在加入会议成功后调用,该伴音配置只存在于该会议存在期间.

参数
filePath文件路径
loop指定音频文件循环播放的次数: 正整数:循环的次数 -1:无限循环
isSendMix是否启动远端伴音 启动后播放的音乐对方也可以听到
返回
EMError#EM_NO_ERROR - 成功 EMError#CALL_CONFERENCE_NO_EXIST - 未加入会议 EMError#CALL_INVALID_PARAMS - 路径参数下的音频文件不存在

◆ startMonitorSpeaker:timeInterval:completion:

- (void) startMonitorSpeaker: (EMCallConference *)  aCall
timeInterval: (long long)  aTimeMillisecond
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

开始监听说话者

参数
aCall会议实例(自己创建的无效)
aTimeMillisecond返回回调的间隔,单位毫秒,传0使用300毫秒[EMConferenceManagerDelegate conferenceSpeakerDidChange:speakingStreamIds:]
aCompletionBlock完成的回调

◆ stopAudioMixing

- (EMError *) stopAudioMixing
optional

关闭本地混音功能,请在加入会议成功后调用

返回
EMError#EM_NO_ERROR - 成功 EMError#CALL_CONFERENCE_NO_EXIST - 未加入会议

◆ stopMonitorSpeaker:

- (void) stopMonitorSpeaker: (EMCallConference *)  aCall
optional

结束监听说话者

参数
aCall会议实例(自己创建的无效)

◆ subscribeConference:streamId:remoteVideoView:completion:

- (void) subscribeConference: (EMCallConference *)  aCall
streamId: (NSString *)  aStreamId
remoteVideoView: (EMCallRemoteVideoView *)  aRemoteView
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

订阅其他人的数据流

参数
aCall会议实例(自己创建的无效)
aStreamId数据流ID (在[EMConferenceManagerDelegate streamDidUpdate:addStream]中返回)
aRemoteView视频显示页面
aCompletionBlock完成的回调

◆ unpublishConference:streamId:completion:

- (void) unpublishConference: (EMCallConference *)  aCall
streamId: (NSString *)  aStreamId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

取消上传本地摄像头的数据流

参数
aCall会议实例(自己创建的无效)
aStreamId数据流ID(在[IEMConferenceManager publishConference:pubConfig:completion:]返回)
aCompletionBlock完成的回调

◆ unsubscribeConference:streamId:completion:

- (void) unsubscribeConference: (EMCallConference *)  aCall
streamId: (NSString *)  aStreamId
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

取消订阅的数据流

参数
aCall会议实例(自己创建的无效)
aStreamId数据流ID
aCompletionBlock完成的回调

◆ updateConference:enableVideo:

- (void) updateConference: (EMCallConference *)  aCall
enableVideo: (BOOL)  aEnableVideo 
optional

设置视频是否可用

参数
aCall会议实例(自己创建的无效)
aEnableVideo视频是否可用

◆ updateConference:isMute:

- (void) updateConference: (EMCallConference *)  aCall
isMute: (BOOL)  aIsMute 
optional

设置是否静音

参数
aCall会议实例(自己创建的无效)
aIsMute是否静音

◆ updateConference:liveId:setRegions:completion:

- (void) updateConference: (EMCallConference *)  aCall
liveId: (NSString *)  aLiveId
setRegions: (NSArray< LiveRegion * > *)  aReagionList
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

修改会议的cdn推流位置

参数
aCall会议实例(自己创建的无效)
aReagionList媒体流的位置信息
aLiveId推流Id
aCompletionBlock回调函数

◆ updateConference:maxVideoKbps:

- (void) updateConference: (EMCallConference *)  aCall
maxVideoKbps: (int)  aMaxVideoKbps 
optional

更新视频最大码率

参数
aCall会议实例
aMaxVideoKbps最大码率

◆ updateConference:setRegions:completion:

- (void) updateConference: (EMCallConference *)  aCall
setRegions: (NSArray< LiveRegion * > *)  aReagionList
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

修改会议的cdn推流位置

参数
aCall会议实例(自己创建的无效)
aReagionList媒体流的位置信息
aCompletionBlock回调函数

◆ updateConference:streamId:remoteVideoView:completion:

- (void) updateConference: (EMCallConference *)  aCall
streamId: (NSString *)  aStreamId
remoteVideoView: (EMCallRemoteVideoView *)  aRemoteView
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

更新视频显示页面

参数
aCall会议实例
aStreamId数据流ID
aRemoteView显示页面
aCompletionBlock完成的回调

◆ updateConferenceWithSwitchCamera:

- (void) updateConferenceWithSwitchCamera: (EMCallConference *)  aCall
optional

切换前后摄像头

参数
aCall会议实例(自己创建的无效)

◆ updateWhiteboardRoomWithRoomId:username:userToken:intract:allUsers:serventIds:completion:

- (void) updateWhiteboardRoomWithRoomId: (NSString *)  aRoomId
username: (NSString *)  aUsername
userToken: (NSString *)  aToken
intract: (BOOL)  aInteract
allUsers: (BOOL)  aAll
serventIds: (NSArray< NSString * > *)  aServentIds
completion: (void(^)(EMError *aError))  aCompletionBlock 
optional

修改白板的用户互动权限

参数
aRoomId房间Id
aToken用户的token
aPassword房间的密码
aInteract是否允许互动,YES为允许互动,NO为不允许互动
aAll是否操作所有成员,YES时操作所有人,aServentIds不起作用
aServentIds操作的成员数组,aAll为NO时有效
aCompletionBlock请求完成的回调

该协议的文档由以下文件生成: