需要添加直播接口
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import DCloudUTSFoundation
|
||||
import RTCRoomEngine
|
||||
|
||||
class ExperimentalApiInvoker {
|
||||
public static let shared = ExperimentalApiInvoker()
|
||||
private let jsonDecoder = JSONDecoder()
|
||||
// const data = { "api": "setTestEnvironment", "params": { "enableRoomTestEnv": true } } // 设置 IM 测试环境
|
||||
// const data = { "api": "setLocalVideoMuteImage", "params": { "image": "filePath" } } // 设置垫片
|
||||
// const giftData = { "api": "setCurrentLanguage", "params": { "language" : "en"} } // 礼物功能设置语言
|
||||
public func callExperimentalAPI(
|
||||
_ jsonString: String, callback: @escaping TUIExperimentalAPIResponseBlock
|
||||
) {
|
||||
guard let data = jsonString.data(using: .utf8) else {
|
||||
callback("Invalid JSON string")
|
||||
return
|
||||
}
|
||||
|
||||
do {
|
||||
let requestData = try jsonDecoder.decode(RequestData.self, from: data)
|
||||
if requestData.api == "setLocalVideoMuteImage" {
|
||||
setLocalVideoMuteImage(data: requestData, callback: callback)
|
||||
return
|
||||
}
|
||||
TUIRoomEngine.sharedInstance().callExperimentalAPI(
|
||||
jsonStr: jsonString, callback: callback)
|
||||
} catch {
|
||||
callback("JSON parsing error")
|
||||
}
|
||||
}
|
||||
|
||||
private func setLocalVideoMuteImage(
|
||||
data: RequestData, callback: @escaping TUIExperimentalAPIResponseBlock
|
||||
) {
|
||||
guard let filePath = data.params?.image, !filePath.isEmpty else {
|
||||
callback("setLocalVideoMuteImage: filePath is empty")
|
||||
return
|
||||
}
|
||||
|
||||
do {
|
||||
let image = UIImage(contentsOfFile: filePath)
|
||||
TUIRoomEngine.sharedInstance().setLocalVideoMuteImage(image: image)
|
||||
} catch {
|
||||
callback("setLocalVideoMuteImage: unexpected error")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct RequestData: Codable {
|
||||
let api: String
|
||||
let params: Params?
|
||||
}
|
||||
|
||||
// 不要修改数据,每个数据对应一个关键字
|
||||
struct Params: Codable {
|
||||
let image: String?
|
||||
}
|
||||
Reference in New Issue
Block a user