79 lines
3.3 KiB
Swift
79 lines
3.3 KiB
Swift
|
|
//
|
||
|
|
// ConferenceSession.swift
|
||
|
|
// TUIRoomKit
|
||
|
|
//
|
||
|
|
// Created by janejntang on 2024/3/6.
|
||
|
|
//
|
||
|
|
|
||
|
|
import RTCRoomEngine
|
||
|
|
|
||
|
|
class ConferenceOptions {
|
||
|
|
|
||
|
|
static func quickStart(startConferenceParams: StartConferenceParams,
|
||
|
|
onSuccess: TUIRoomInfoBlock? = nil,
|
||
|
|
onError: TUIErrorBlock? = nil) {
|
||
|
|
let roomInfo = createRoomInfo(startConferenceParams: startConferenceParams)
|
||
|
|
quickStartConference(roomInfo: roomInfo,
|
||
|
|
enableAudio: startConferenceParams.isOpenMicrophone,
|
||
|
|
enableVideo: startConferenceParams.isOpenCamera,
|
||
|
|
isSoundOnSpeaker: startConferenceParams.isOpenSpeaker,
|
||
|
|
onSuccess: onSuccess,
|
||
|
|
onError: onError)
|
||
|
|
}
|
||
|
|
|
||
|
|
private static func quickStartConference(roomInfo: TUIRoomInfo,
|
||
|
|
enableAudio: Bool,
|
||
|
|
enableVideo: Bool,
|
||
|
|
isSoundOnSpeaker: Bool,
|
||
|
|
onSuccess: TUIRoomInfoBlock?,
|
||
|
|
onError: TUIErrorBlock?) {
|
||
|
|
EngineManager.shared.createRoom(roomInfo: roomInfo) {
|
||
|
|
EngineManager.shared.enterRoom(roomId: roomInfo.roomId,
|
||
|
|
enableAudio: enableAudio,
|
||
|
|
enableVideo: enableVideo,
|
||
|
|
isSoundOnSpeaker: isSoundOnSpeaker) { roomInfo in
|
||
|
|
onSuccess?(roomInfo)
|
||
|
|
} onError: { code, message in
|
||
|
|
onError?(code, message)
|
||
|
|
}
|
||
|
|
} onError: { code, message in
|
||
|
|
onError?(code, message)
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
static func join(joinConferenParams: JoinConferenceParams,
|
||
|
|
onSuccess: TUIRoomInfoBlock? = nil,
|
||
|
|
onError: TUIErrorBlock? = nil) {
|
||
|
|
var options:TUIEnterRoomOptions?
|
||
|
|
if let password = joinConferenParams.password, password.count > 0 {
|
||
|
|
options = TUIEnterRoomOptions()
|
||
|
|
options?.password = password
|
||
|
|
}
|
||
|
|
EngineManager.shared.enterRoom(roomId: joinConferenParams.roomId,
|
||
|
|
options: options,
|
||
|
|
enableAudio: joinConferenParams.isOpenMicrophone,
|
||
|
|
enableVideo: joinConferenParams.isOpenCamera,
|
||
|
|
isSoundOnSpeaker: joinConferenParams.isOpenSpeaker) { roomInfo in
|
||
|
|
onSuccess?(roomInfo)
|
||
|
|
} onError: { code, message in
|
||
|
|
onError?(code, message)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private static func createRoomInfo(startConferenceParams: StartConferenceParams) -> TUIRoomInfo {
|
||
|
|
let roomInfo = TUIRoomInfo()
|
||
|
|
roomInfo.roomId = startConferenceParams.roomId
|
||
|
|
roomInfo.isMicrophoneDisableForAllUser = !startConferenceParams.isOpenMicrophone
|
||
|
|
roomInfo.isCameraDisableForAllUser = !startConferenceParams.isOpenCamera
|
||
|
|
roomInfo.isSeatEnabled = startConferenceParams.isSeatEnabled
|
||
|
|
roomInfo.name = startConferenceParams.name ?? ""
|
||
|
|
roomInfo.seatMode = .applyToTake
|
||
|
|
return roomInfo
|
||
|
|
}
|
||
|
|
|
||
|
|
deinit {
|
||
|
|
debugPrint("deinit \(self)")
|
||
|
|
}
|
||
|
|
}
|