45 lines
1.2 KiB
Swift
45 lines
1.2 KiB
Swift
//
|
|
// VideoFactory.swift
|
|
// TUICallKit
|
|
//
|
|
// Created by vincepzhang on 2023/2/15.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class VideoFactory {
|
|
|
|
static let instance = VideoFactory()
|
|
var viewMap: [String: UserVideoEntity] = Dictionary()
|
|
|
|
func createVideoView(userId: String,frame: CGRect) -> VideoView {
|
|
let videoView = VideoView(frame: frame)
|
|
let userVideoEntity = UserVideoEntity()
|
|
userVideoEntity.userId = userId
|
|
userVideoEntity.videoView = videoView
|
|
if TUICallState.instance.selfUser.value.id.value == userId {
|
|
userVideoEntity.user = TUICallState.instance.selfUser.value
|
|
} else {
|
|
for user in TUICallState.instance.remoteUserList.value where user.id.value == userId {
|
|
userVideoEntity.user = user
|
|
}
|
|
}
|
|
viewMap[userId] = userVideoEntity
|
|
return videoView
|
|
}
|
|
|
|
func isExistVideoView(videoView: VideoView) -> Bool {
|
|
let isExist = false
|
|
for view in viewMap where view.value.videoView == videoView {
|
|
return true
|
|
}
|
|
return isExist
|
|
}
|
|
}
|
|
|
|
class UserVideoEntity {
|
|
var userId: String = ""
|
|
var user: User = User()
|
|
var videoView: VideoView = VideoView(frame: CGRect.zero)
|
|
}
|