点对点音视频通话

点对点音视频通话功能包含点对点的音频通话和点对点的音视频通话,提供呼叫接听挂断话单通知等功能。通过阅读该章节,您可以快速了解点对点实时音视频通话的流程,帮助您迅速搭建一个最简单的点对点实时音视频通话功能。

呼叫/接听流程

sequenceDiagram 主叫->>被叫: 主叫发起通话请求(start) 被叫->>被叫: 被叫收到通话请求回调(onReceive) 被叫->>主叫: 被叫响应通话请求(response) 被叫->>被叫: 呼入的通话已经被该帐号其他端处理回调(onResponsedByOther) 主叫->>主叫: 主叫收到被叫响应回调(onResponse) 主叫->>主叫: 通话建立成功(onCallEstablished) 被叫->>被叫: 通话建立成功(onCallEstablished)

主叫发起通话请求

主叫通过该接口发起点对点通话请求

@protocol NIMNetCallManager <NSObject>
/**
 *  主叫发起通话 - 新接口
 *
 *  @param callees    被叫帐号列表, 现在只支持传入一个被叫
 *  @param type       呼叫类型
 *  @param option     开始通话附带的选项, 可以为空。如果需要 SDK 自动开启摄像头,需要指定 option 的视频采集参数 videoCaptureParam
 *  @param completion 发起通话结果回调
 */
- (void)start:(NSArray<NSString *> *)callees
         type:(NIMNetCallMediaType)type
       option:(nullable NIMNetCallOption *)option
   completion:(nullable NIMNetCallStartHandler)completion;
@end

接口参数

参数 类型 说明
callees NSArray 被叫帐号列表, 现在只支持传入一个被叫
type NIMNetCallMediaType 呼叫类型
option nullable NIMNetCallOption 开始通话附带的选项, 可以为空。如果需要 SDK 自动开启摄像头,需要指定 option 的视频采集参数 videoCaptureParam
completion nullable NIMNetCallStartHandler 发起通话结果回调
    //先初始化 option 参数
    NIMNetCallOption *option = [[NIMNetCallOption alloc] init];
    option.extendMessage = @"音视频请求扩展信息";
    option.apnsContent = @"通话请求";
    option.apnsSound = @"video_chat_tip_receiver.aac";

    //指定 option 中的 videoCaptureParam 参数
    NIMNetCallVideoCaptureParam *param = [[NIMNetCallVideoCaptureParam alloc] init];
    //清晰度480P
    param.preferredVideoQuality = NIMNetCallVideoQuality480pLevel;
    //裁剪类型 16:9
    param.videoCrop  = NIMNetCallVideoCrop16x9;
    //打开初始为前置摄像头
    param.startWithBackCamera = NO;

    //若需要