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