Files
featherVoice/TUIKit/TUICallKit/TUICallKit-Swift/View/Component/VideoLayout/VideoFactory.swift
2025-08-08 10:49:36 +08:00

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)
}