线程1: EXC_BAD_ACCESS (code=1, address=0x20) 当subView
Thread 1: EXC_BAD_ACCESS (code=1, address=0x20) When subView
我遇到了一个奇怪的错误。 Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)
当一个视图子视图在另一个视图上时。
两个view object not nil.
我该如何解决这个问题。
编辑:
我正在使用 VOIP 实现视频聊天代码。
来电时和接听电话后。我需要显示一个屏幕。
此屏幕显示正常,其他 UIElements 按钮等。(包括按钮功能)一切都按预期进行音频通话。
但是,在收到远程用户视频后的视频通话中,我正在尝试将 subView 转换为视图。我可以看一下远程用户屏幕。突然崩溃(线程 1:EXC_BAD_ACCESS(代码=1,地址=0x20))。
func session(_ session: QBRTCBaseSession, receivedRemoteVideoTrack videoTrack: QBRTCVideoTrack, fromUser userID: NSNumber) {
if (session as! QBRTCSession).id == self.session?.id {
let remoteView :QBRTCRemoteVideoView = QBRTCRemoteVideoView()
remoteView.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue
remoteView.clipsToBounds = true
remoteView.setVideoTrack(videoTrack)
remoteView.tag = userID.intValue
var frame = self.mainVideoView.bounds
frame.origin.y = 0
remoteView.frame = frame
self.view.addSubview(remoteView)
}
}
其中receivedRemoteVideoTrack
函数是远程视频的委托方法。
请记住,Metal
仅适用于 A7
处理器或更高版本。我可以建议你强制 OpenGLES
图纸而不是 Metal
,现在,只需这样做:
QBRTCRemoteVideoView.preferMetal = NO
我遇到了一个奇怪的错误。 Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)
当一个视图子视图在另一个视图上时。
两个view object not nil.
我该如何解决这个问题。
编辑: 我正在使用 VOIP 实现视频聊天代码。
来电时和接听电话后。我需要显示一个屏幕。 此屏幕显示正常,其他 UIElements 按钮等。(包括按钮功能)一切都按预期进行音频通话。
但是,在收到远程用户视频后的视频通话中,我正在尝试将 subView 转换为视图。我可以看一下远程用户屏幕。突然崩溃(线程 1:EXC_BAD_ACCESS(代码=1,地址=0x20))。
func session(_ session: QBRTCBaseSession, receivedRemoteVideoTrack videoTrack: QBRTCVideoTrack, fromUser userID: NSNumber) {
if (session as! QBRTCSession).id == self.session?.id {
let remoteView :QBRTCRemoteVideoView = QBRTCRemoteVideoView()
remoteView.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue
remoteView.clipsToBounds = true
remoteView.setVideoTrack(videoTrack)
remoteView.tag = userID.intValue
var frame = self.mainVideoView.bounds
frame.origin.y = 0
remoteView.frame = frame
self.view.addSubview(remoteView)
}
}
其中receivedRemoteVideoTrack
函数是远程视频的委托方法。
请记住,Metal
仅适用于 A7
处理器或更高版本。我可以建议你强制 OpenGLES
图纸而不是 Metal
,现在,只需这样做:
QBRTCRemoteVideoView.preferMetal = NO