Проблема была на самом деле с renderingType
из remoteView
.Для более старых устройств использование metal
было бы хорошо, но для новых устройств требовалось openGLES
.Я не знаю почему, но это было исправление.
Я использовал это решение, чтобы выяснить тип устройства.
Далее я определил, какой renderingType
использовать
var renderingType: VideoView.RenderingType {
get{
let device = UIDevice()
switch device.type{
case .iPhoneXS:
return .openGLES
case .iPhoneXR:
return .openGLES
case .iPhoneXSMax:
return .openGLES
default:
return .metal
}
}
}
И использовал его для инициализации remoteView
func didSubscribeToVideoTrack(videoTrack: RemoteVideoTrack, publication: RemoteVideoTrackPublication, participant: RemoteParticipant) {
print("Participant \(participant.identity) added a video track.")
let remoteView = VideoView.init(frame: UIWindow().frame,
delegate:self,
renderingType: renderingType)
videoTrack.addRenderer(remoteView!)
delegate.participantAddedVideo(for: participant.identity, with: remoteView!)
}