Podfile
文件中添加以下依赖。pod 'TUICallKit'
pod install
pod repo update
<key>NSCameraUsageDescription</key><string>CallingApp需要访问您的相机权限,开启后录制的视频才会有画面</string><key>NSMicrophoneUsageDescription</key><string>CallingApp需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
// 组件登录[TUILogin login:1400000001 // 请替换为步骤一取到的 SDKAppIDuserID:@"denny" // 请替换为您的 UserIDuserSig:@"xxxxxxxxxxx" // 您可以在控制台中计算一个 UserSig 并填在这个位置succ:^{NSLog(@"login success");} fail:^(int code, NSString *msg) {NSLog(@"login failed, code: %d, error: %@", code, msg);}
// 组件登录TUILogin.login(1400000001, // 请替换为步骤一取到的 SDKAppIDuserID: "denny", // 请替换为您的 UserIDuserSig: "xxxxxxxxxxx") { // 您可以在控制台中计算一个 UserSig 并填在这个位置print("login success")} fail: { (code, message) inprint("login failed, code: \\(code), error: \\(message ?? "nil")")}
// 发起1对1视频通话(假设 userId 为 mike)[[TUICallKit createInstance] call:@"mike" callMediaType:TUICallMediaTypeVideo];
// 发起1对1视频通话(假设 userId 为 mike)TUICallKit.createInstance().call(userId: "mike", callMediaType: .video)
参数 | 类型 | 含义 |
userId | NSString | 目标用户的 UserID: "mike" |
callMediaType | TUICallMediaType | 通话的媒体类型,示例: TUICallMediaTypeVideo |
[[TUICallKit createInstance] groupCall:@"12345678" userIdList:@[@"denny", @"mike", @"tommy"] callMediaType:TUICallMediaTypeVideo];
TUICallKit.createInstance().groupCall(groupId: "12345678", userIdList: ["denny", "mike", "tommy"], callMediaType: .video)
参数 | 类型 | 含义 |
groupId | NSString | 群组 ID,示例: @"12345678" |
userIdList | NSArray | 目标用户的userId 列表,示例: @[@"denny", @"mike", @"tommy"] |
callMediaType | TUICallMediaType | 通话的媒体类型,示例: TUICallMediaTypeVideo |
[[TUICallKit createInstance] setSelfInfo:@"jack" avatar:@"https:/****/user_avatar.png" succ:^{} fail:^(int code, NSString *errMsg) {}];
TUICallKit.createInstance().setSelfInfo(nickname: "jack", avatar: "https:/****/user_avatar.png", succ: {}) { code, desc in}
App 的进程被杀死后
或者APP 退到后台后
,还可以正常接收到音视频通话请求,就需要增加离线唤醒功能,详情见 离线唤醒(iOS)。[[TUICallKit createInstance] enableFloatWindow:YES];
TUICallKit.createInstance().enableFloatWindow(true)
[[TUICallEngine createInstance] addObserver:self];- (void)onCallBegin:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole {}- (void)onCallEnd:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole totalTime:(float)totalTime {}- (void)onUserNetworkQualityChanged:(NSArray<TUINetworkQualityInfo *> *)networkQualityList {}
TUICallEngine.createInstance().add(self)public func onCallBegin(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole) {}public func onCallEnd(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole, totalTime: Float) {}public func onUserNetworkQualityChanged(networkQualityList: [TUINetworkQualityInfo]) {}
[[TUICallKit createInstance] setCallingBell:filePath];
TUICallKit.createInstance().setCallingBell(filePath: filePath)
TUICallParams *callParams = [TUICallParams new];callParams.offlinePushInfo = [TUIOfflinePushInfo new];callParams.timeout = 30;callParams.userData = @"user data";[[TUICallKit createInstance] call:@"mike" callMediaType:TUICallMediaTypeVideo params:callParams succ:nil fail:nil];
let callParams = TUICallParams()let offlinePushInfo = TUIOfflinePushInfo()callParams.offlinePushInfo = offlinePushInfocallParams.timeout = 30callParams.userData = "user data"TUICallKit.createInstance().call(userId: "mike", callMediaType: .video, params: callParams) {}
本页内容是否解决了您的问题?