音视频通话

音视频通话

目前配合其他音视频SDK建立了音视频的IM通讯体系

@protocol QDIMMediaManager <NSObject>

/**
 添加音视频通话委托

 @param delegate 委托
 */
- (void)addDelegate:(id<QDMediaManagerDelegate>)delegate;

/**
 移除音视频通话委托

 @param delegate 委托
 */
- (void)removeDelegate:(id<QDMediaManagerDelegate>)delegate;

/**
 创建会议房间

 @param callType 通话类型
 @param completionBlock 回调
 */
- (void)createMeetingRoomByCallType:(QDNetCallType)callType
                         completion:(void(^ __nullable)(id __nullable response, NSError * __nullable error))completionBlock;
/**
 发起音视频请求

 @param user    用户对象
 @param subject 主题
 @param type    通话类型
 @param body    内容信息
 @param completion 回调
 @return 会议命令
 */
- (QDAVCmd *)startNetCall:(QDUser   *)user
                  subject:(NSString *)subject
                     type:(QDNetCallType)type
                     body:(NSString *)body
               completion:(nullable QDIMNetCallHandler)completion;


/**
 停止音视频请求

 @param user    用户对象
 @param cmdGuid 停止音视频请求的ID
 @param subject 主题
 @param type    通话类型
 @param body    内容信息
 @param completion 回调
 */
- (void)stopNetCall:(QDUser   *)user
            cmdGuid:(NSString *)cmdGuid
            subject:(NSString *)subject
               type:(QDNetCallType)type
               body:(NSString *)body
         completion:(nullable QDIMNetCallHandler)completion;


/**
 接收音视频请求

 @param avCmd   音视频请求对象
 @param subject 主题
 @param type    通话类型
 @param completion 回调
 */
- (void)acceptNetCall:(QDAVCmd  *)avCmd
              subject:(NSString *)subject
                 type:(QDNetCallType)type
           completion:(nullable QDIMNetCallHandler)completion;


/**
 拒绝音视频请求

 @param avCmd   音视频请求对象
 @param subject 主题
 @param reason  原因
 @param type    通话类型
 @param isBusy  是否对方正在通话或视频中
 对方正在通话或视频中
 */
- (void)rejectNetCall:(QDAVCmd  *)avCmd
              subject:(NSString *)subject
               reason:(NSString *)reason
                 type:(QDNetCallType)type
               isBusy:(BOOL)isBusy
           completion:(nullable QDIMNetCallHandler)completion;



@end

代理方法

@protocol QDMediaManagerDelegate <NSObject>

@optional

- (void)onRecvNetCallReply:(QDAVCmd *)avCmd;

- (void)onRecvNetCallRequest:(QDAVCmd *)avCmd;

- (void)onRecvMnetCallNotify:(QDMAVCmd *)mavCmd;

- (void)onRecNetCallPlatformReply:(QDAVCmd *)avCmd;

@end

具体使用方法,配合项目Demo来进行使用