ConferenceOptions.swift 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // ConferenceSession.swift
  3. // TUIRoomKit
  4. //
  5. // Created by janejntang on 2024/3/6.
  6. //
  7. import RTCRoomEngine
  8. class ConferenceOptions {
  9. static func quickStart(startConferenceParams: StartConferenceParams,
  10. onSuccess: TUIRoomInfoBlock? = nil,
  11. onError: TUIErrorBlock? = nil) {
  12. let roomInfo = createRoomInfo(startConferenceParams: startConferenceParams)
  13. quickStartConference(roomInfo: roomInfo,
  14. enableAudio: startConferenceParams.isOpenMicrophone,
  15. enableVideo: startConferenceParams.isOpenCamera,
  16. isSoundOnSpeaker: startConferenceParams.isOpenSpeaker,
  17. onSuccess: onSuccess,
  18. onError: onError)
  19. }
  20. private static func quickStartConference(roomInfo: TUIRoomInfo,
  21. enableAudio: Bool,
  22. enableVideo: Bool,
  23. isSoundOnSpeaker: Bool,
  24. onSuccess: TUIRoomInfoBlock?,
  25. onError: TUIErrorBlock?) {
  26. EngineManager.shared.createRoom(roomInfo: roomInfo) {
  27. EngineManager.shared.enterRoom(roomId: roomInfo.roomId,
  28. enableAudio: enableAudio,
  29. enableVideo: enableVideo,
  30. isSoundOnSpeaker: isSoundOnSpeaker) { roomInfo in
  31. onSuccess?(roomInfo)
  32. } onError: { code, message in
  33. onError?(code, message)
  34. }
  35. } onError: { code, message in
  36. onError?(code, message)
  37. }
  38. }
  39. static func join(joinConferenParams: JoinConferenceParams,
  40. onSuccess: TUIRoomInfoBlock? = nil,
  41. onError: TUIErrorBlock? = nil) {
  42. var options:TUIEnterRoomOptions?
  43. if let password = joinConferenParams.password, password.count > 0 {
  44. options = TUIEnterRoomOptions()
  45. options?.password = password
  46. }
  47. EngineManager.shared.enterRoom(roomId: joinConferenParams.roomId,
  48. options: options,
  49. enableAudio: joinConferenParams.isOpenMicrophone,
  50. enableVideo: joinConferenParams.isOpenCamera,
  51. isSoundOnSpeaker: joinConferenParams.isOpenSpeaker) { roomInfo in
  52. onSuccess?(roomInfo)
  53. } onError: { code, message in
  54. onError?(code, message)
  55. }
  56. }
  57. private static func createRoomInfo(startConferenceParams: StartConferenceParams) -> TUIRoomInfo {
  58. let roomInfo = TUIRoomInfo()
  59. roomInfo.roomId = startConferenceParams.roomId
  60. roomInfo.isMicrophoneDisableForAllUser = startConferenceParams.isMicrophoneDisableForAllUser
  61. roomInfo.isCameraDisableForAllUser = startConferenceParams.isCameraDisableForAllUser
  62. roomInfo.isSeatEnabled = startConferenceParams.isSeatEnabled
  63. roomInfo.name = startConferenceParams.name ?? ""
  64. roomInfo.seatMode = .applyToTake
  65. roomInfo.password = startConferenceParams.password ?? ""
  66. return roomInfo
  67. }
  68. deinit {
  69. debugPrint("deinit \(self)")
  70. }
  71. }