首页 > 解决方案 > WebRTC [UIView renderFrame:]:发送到实例的无法识别的选择器

问题描述

我已经在我的应用程序中安装了用于音频/视频通话的 pod 'WebRTC'。在情节提要中,我有两个带有“RTCVideoRenderer”类的 UIView。下面是我的代码。我正在关注这个

func configureClient() {
    let iceServers = RTCIceServer.init(urlStrings: [stunServer])
    let client = RTCClient.init(iceServers: [iceServers], videoCall: true)
    client.delegate = self
    self.client = client
    client.startConnection()
}

extension ViewController: RTCClientDelegate {
func rtcClient(client: RTCClient, didCreateLocalCapturer capturer: RTCCameraVideoCapturer) {
    let settingsModel = RTCCapturerSettingsModel()
    self.captureController = RTCCapturer.init(withCapturer: capturer, settingsModel: settingsModel)
    captureController.startCapture()
}

func rtcClient(client: RTCClient, didGenerateIceCandidate iceCandidate: RTCIceCandidate) {
    print("iceCandidate generated")
}

func rtcClient(client: RTCClient, didReceiveLocalVideoTrack localVideoTrack: RTCVideoTrack) {
    DispatchQueue.main.async {
        localVideoTrack.add(self.localVideoView)
        self.localVideoTrack = localVideoTrack
    }
}

func rtcClient(client: RTCClient, startCallWithSdp sdp: String) {
    print("SDP generated")
}

func rtcClient(client: RTCClient, didReceiveRemoteVideoTrack remoteVideoTrack: RTCVideoTrack) {
    DispatchQueue.main.async {
        remoteVideoTrack.add(self.remoteVideoView)
        self.remoteVideoTrack = remoteVideoTrack
    }
}

func rtcClient(client : RTCClient, didReceiveError error: Error) {
    print("Error Received: \(error)")
}
}

这是因错误而崩溃:

主线程检查器:在后台线程上调用的 UI API:-[UIView setSize:] PID:9951,TID:2583661,线程名称:(无),队列名称:com.apple.avfoundation.videodataoutput.bufferqueue,QoS:0

[UIView renderFrame:]:无法识别的选择器发送到实例 0x101501840 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIView renderFrame:]:无法识别的选择器发送到实例 0x101501840”

标签: iosswiftwebrtc

解决方案


推荐阅读