NERtcCallKit V4.7.0
载入中...
搜索中...
未找到
NECallEngine.h
浏览该文件的文档.
1// Copyright (c) 2022 NetEase, Inc. All rights reserved.
2// Use of this source code is governed by a MIT license that can be
3// found in the LICENSE file.
4
5#import <Foundation/Foundation.h>
6
7#import "NECallConfig.h"
9#import "NECallEndInfo.h"
11#import "NECallInfo.h"
12#import "NECallInviteParam.h"
16#import "NECallMemberInfo.h"
18#import "NECallParam.h"
19#import "NECallPushConfig.h"
22#import "NEHangupParam.h"
23#import "NEInviteInfo.h"
24#import "NERecordConfig.h"
25#import "NESetupConfig.h"
26#import "NESwitchParam.h"
27#import "NEUserInfo.h"
28
29NS_ASSUME_NONNULL_BEGIN
30
31@protocol NECallEngineRtcDelegateEx <NSObject>
32
33- (void)onNERtcEngineVirtualBackgroundSourceEnabled:(BOOL)enabled
34 reason:(NERtcVirtualBackgroundSourceStateReason)reason;
35
36@end
37
38@protocol NERecordProvider <NSObject>
39
40- (void)onRecordSend:(NERecordConfig *)config;
41
42@end
43
44@protocol NECallMultiDelegate <NSObject>
45
46#pragma mark - 多人通话回调接口
47
48@optional
49
54- (void)onCallModeChanged:(NECallModeChangeInfo *)info;
55
60- (void)onCallMembersChanged:(NECallMemberChangeInfo *)info;
61
66- (void)onCallInviteStateChanged:(NSArray<NECallInviteStateInfo *> *)infos;
67
68@end
69
70@protocol NECallEngineDelegate <NECallMultiDelegate>
71
72#pragma mark - 回调接口
73
74@optional
75
78- (void)onReceiveInvited:(NEInviteInfo *)info;
79
82- (void)onCallEnd:(NECallEndInfo *)info;
83
86- (void)onCallConnected:(NECallInfo *)info;
87
90- (void)onCallTypeChange:(NECallTypeChangeInfo *)info;
91
95- (void)onVideoAvailable:(BOOL)available userID:(NSString *)userId;
96
100- (void)onVideoMuted:(BOOL)muted userID:(NSString *)userId;
101
105- (void)onAudioMuted:(BOOL)muted userID:(NSString *)userId;
106
109- (void)onLocalAudioMuted:(BOOL)muted;
110
111#pragma mark - 生命周期回调接口
112
114- (void)onRtcInitEnd;
115
116@end
117
118@interface NECallEngine : NSObject
119
121@property(nonatomic, assign, readonly) NERtcCallStatus callStatus;
122
124@property(nonatomic, assign) NSTimeInterval timeOutSeconds;
125
127@property(nonatomic, weak) id<NERtcEngineDelegateEx> engineDelegate;
128
130@property(nonatomic, weak) id<NERtcEngineMediaStatsObserver> observer;
131
133@property(nonatomic, readonly, strong) NESetupConfig *config;
134
136+ (instancetype)sharedInstance;
137
139- (void)destroy;
140
141#pragma mark - 主流程
142
145- (void)setup:(NESetupConfig *)config;
146
150- (void)call:(NECallParam *)param
151 completion:
152 (nullable void (^)(NSError *_Nullable error, NECallInfo *_Nullable callInfo))completion;
153
156- (void)accept:(nullable void (^)(NSError *_Nullable error,
157 NECallInfo *_Nullable callInfo))completion;
158
162- (void)hangup:(NEHangupParam *)param
163 completion:(nullable void (^)(NSError *_Nullable error))completion;
164
172- (void)inviteMembers:(NECallInviteParam *)param
173 completion:(nullable void (^)(NSError *_Nullable error,
174 NECallInviteResult *_Nullable result))completion;
175
176#pragma mark - 配置接口
177
180- (void)switchCallType:(NESwitchParam *)param
181 completion:(nullable void (^)(NSError *_Nullable))completion;
182
185- (void)setTimeout:(int)time;
186
191- (int)setupLocalView:(nullable UIView *)view;
192
197- (int)setupRemoteView:(nullable UIView *)view;
198
202- (int)setupRemoteCanvas:(nullable NERtcVideoCanvas *)canvas;
203
207- (int)enableLocalVideo:(BOOL)enable;
208
212- (int)muteLocalVideo:(BOOL)muted;
213
217- (int)muteLocalAudio:(BOOL)muted;
218
221- (void)setCallRecordProvider:(nullable id<NERecordProvider>)provider;
222
224- (void)switchCamera;
225
228- (void)setSpeakerphoneOn:(BOOL)enable;
229
232- (BOOL)isSpeakerphoneOn;
233
236- (void)setCallConfig:(NECallConfig *)config;
237
239- (void)addCallDelegate:(id<NECallEngineDelegate>)delegate;
240
242- (void)removeCallDelegate:(id<NECallEngineDelegate>)delegate;
243
244// 设置AI降噪模式
245- (void)setAINSMode:(NERtcAudioAINSMode)mode;
246
247// 开启实时字幕。
248- (int)startASRCaption:(NERtcASRCaptionConfig *)config;
249
250// 关闭实时字幕。
251- (int)stopASRCaption;
252
253#pragma mark - 状态信息获取
254
257- (nullable NECallInfo *)getCallInfo;
258
263- (NSArray<NECallMemberInfo *> *)currentMembers;
264
267- (BOOL)isInMultiCall;
268
272- (BOOL)canInviteMembers;
273
277
281- (nullable NEUserInfo *)getUserWithRtcUid:(uint64_t)rtcUid;
282
284+ (NSString *)getVersion;
285
286#pragma mark - 弹出系统来电提示
287
293
294- (void)reportIncomingCallWithParam:(NECallSystemIncomingCallParam *)param
295 acceptCompletion:
296 (nullable void (^)(NSError *_Nullable error,
297 NECallInfo *_Nullable callInfo))acceptCompletion
298 hangupCompletion:(nullable void (^)(NSError *_Nullable error))hangupCompletion
299 muteCompletion:
300 (nullable void (^)(NSError *_Nullable error, BOOL mute))muteCompletion
301 API_AVAILABLE(ios(17.4));
302
305
306- (void)dismissIncomingCall API_AVAILABLE(ios(17.4));
307
308@end
309
310NS_ASSUME_NONNULL_END
NERtcCallStatus
通话状态
定义 NECallEngineConsts.h:91
定义 NECallConfig.h:10
定义 NECallEndInfo.h:11
定义 NECallEngine.h:119
int stopASRCaption()
定义 NECallEngine.m:891
NSTimeInterval timeOutSeconds
单位:秒,IM服务器邀请2分钟后无响应为超时,最大值不超过2分钟。1v1 呼叫逻辑保持不变;已接通后邀请成员加入多人通话时,SDK 会复用当前超时时长作为被邀请方的等待接听时长。
定义 NECallEngine.h:124
nullable NECallInfo * getCallInfo()
获取当前通话信息
定义 NECallEngine.m:1019
NESetupConfig * config
初始化设置
定义 NECallEngine.h:133
id< NERtcEngineDelegateEx > engineDelegate
NERtcEngine 的回调接口,由用户提供
定义 NECallEngine.h:127
NERtcCallStatus callStatus
通话状态
定义 NECallEngine.h:121
id< NERtcEngineMediaStatsObserver > observer
中转NERtcEngine统计回调
定义 NECallEngine.h:130
BOOL isSpeakerphoneOn()
检查扬声器状态启用状态
定义 NECallEngine.m:875
void destroy()
销毁
定义 NECallEngine.m:294
NECallConfig * getCallConfig()
获取当前通话配置
定义 NECallEngine.m:1199
BOOL isInMultiCall()
当前通话是否已经进入过多人模式。 @discussion 发起多人邀请成功并出现 WAITING 待接听成员后即返回 YES;多人通话退回 2 人时仍保持 YES,直到本通电话结束。
定义 NECallEngine.m:1169
ios(17.4 API_AVAILABLE()
取消系统来电提示,仅限 iOS 17.4 及之后系统版本支持 @discussion 仅用于取消当前显示的系统来电提示,不会改变当前通话状态或执行挂断。
NSString * getVersion()
版本号
定义 NECallEngine.m:2385
NSArray< NECallMemberInfo * > * currentMembers()
获取当前通话成员快照。 @discussion 列表可包含 WAITING 待接听成员和 JOINED 已加入成员;邀请失败、拒绝、超时、忙线、不支持或取消后, 对应待接听成员会被移除。
定义 NECallEngine.m:1162
instancetype sharedInstance()
单例
定义 NECallEngine.m:192
BOOL canInviteMembers()
当前通话是否允许继续邀请成员。 @discussion 该判断会综合当前通话状态、多人通话能力和必要通话信息;可用于决定是否展示邀请入口。实际邀请人数仍以 inviteMembers:completio...
定义 NECallEngine.m:1176
void switchCamera()
摄像头前后切换
定义 NECallEngine.m:855
定义 NECallInfo.h:14
定义 NECallInviteParam.h:11
定义 NECallInviteResult.h:26
定义 NECallInviteStateInfo.h:11
定义 NECallMemberChangeInfo.h:12
定义 NECallMemberInfo.h:11
定义 NECallModeChangeInfo.h:11
定义 NECallParam.h:13
定义 NECallSystemIncomingCallParam.h:22
定义 NECallTypeChangeInfo.h:11
定义 NEHangupParam.h:11
定义 NEInviteInfo.h:11
定义 NERecordConfig.h:11
定义 NESetupConfig.h:10
定义 NESwitchParam.h:10
定义 NEUserInfo.h:10