Files
midi_ios/TUIKit/TUICallKit/TUICallKit-Swift/TUICallKit.swift

153 lines
4.5 KiB
Swift
Raw Normal View History

2025-08-14 10:07:49 +08:00
//
// TUICallKit.swift
// TUICallKit
//
// Created by vincepzhang on 2022/12/30.
//
import Foundation
import TUICallEngine
@objc
public class TUICallKit: NSObject {
/**
* Create a TUICallKit instance
*/
@objc
public static func createInstance() -> TUICallKit {
return TUICallKitImpl.instance
}
/**
* Set user profile
*
* @param nickname User name, which can contain up to 500 bytes
* @param avatar User profile photo URL, which can contain up to 500 bytes
* For example: https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar1.png
*/
@objc
public func setSelfInfo(nickname: String, avatar: String, succ:@escaping TUICallSucc, fail: @escaping TUICallFail) {
return TUICallKitImpl.instance.setSelfInfo(nickname: nickname, avatar: avatar, succ: succ, fail: fail)
}
/**
* Make a call
*
* @param userId callees
* @param callMediaType Call type
*/
@objc
public func call(userId: String, callMediaType: TUICallMediaType) {
return TUICallKitImpl.instance.call(userId: userId, callMediaType: callMediaType)
}
/**
* Make a call
*
* @param userId callees
* @param callMediaType Call type
* @param params Extension param: eg: offlinePushInfo
*/
@objc
public func call(userId: String, callMediaType: TUICallMediaType, params: TUICallParams,
succ: @escaping TUICallSucc, fail: @escaping TUICallFail) {
return TUICallKitImpl.instance.call(userId: userId, callMediaType: callMediaType, params: params, succ: succ, fail: fail)
}
/**
* Make a group call
*
* @param groupId GroupId
* @param userIdList List of userId
* @param callMediaType Call type
*/
@objc
public func groupCall(groupId: String, userIdList: [String], callMediaType: TUICallMediaType) {
return TUICallKitImpl.instance.groupCall(groupId: groupId, userIdList: userIdList, callMediaType: callMediaType)
}
/**
* Make a group call
*
* @param groupId GroupId
* @param userIdList List of userId
* @param callMediaType Call type
* @param params Extension param: eg: offlinePushInfo
*/
@objc
public func groupCall(groupId: String, userIdList: [String], callMediaType: TUICallMediaType, params: TUICallParams,
succ: @escaping TUICallSucc, fail: @escaping TUICallFail) {
return TUICallKitImpl.instance.groupCall(groupId: groupId, userIdList: userIdList, callMediaType: callMediaType, params: params,
succ: succ, fail: fail)
}
/**
* Join a current call
*
* @param roomId current call room ID
* @param callMediaType call type
*/
@objc
public func joinInGroupCall(roomId: TUIRoomId, groupId: String, callMediaType: TUICallMediaType) {
return TUICallKitImpl.instance.joinInGroupCall(roomId: roomId, groupId: groupId, callMediaType: callMediaType)
}
/**
* Set the ringtone (preferably shorter than 30s)
*
* @param filePath Callee ringtone path
*/
@objc
public func setCallingBell(filePath: String) {
return TUICallKitImpl.instance.setCallingBell(filePath: filePath)
}
/**
* Enable the mute mode (the callee doesn't ring)
*/
@objc public func enableMuteMode(enable: Bool) {
return TUICallKitImpl.instance.enableMuteMode(enable: enable)
}
/**
* Enable the floating window
*/
@objc
public func enableFloatWindow(enable: Bool) {
return TUICallKitImpl.instance.enableFloatWindow(enable: enable)
}
/**
* Support custom View
*/
@objc
public func enableCustomViewRoute(enable: Bool) {
return TUICallKitImpl.instance.enableCustomViewRoute(enable: enable)
}
/**
* Get TUICallKit ViewController
*/
@objc
public func getCallViewController() -> UIViewController {
return TUICallKitImpl.instance.getCallViewController()
}
/**
* Enable Virtual Background
*/
@objc
public func enableVirtualBackground(enable: Bool) {
return TUICallKitImpl.instance.enableVirtualBackground(enable: enable)
}
/**
* Enable Incoming Banner
*/
@objc
public func enableIncomingBanner(enable: Bool) {
return TUICallKitImpl.instance.enableIncomingBanner(enable: enable)
}
}