WebRTC - iOS Swift - 删除视频流并将uiview设置为黑色

时间:2018-04-26 11:22:07

标签: ios swift webrtc libjingle

我实现了一个使用WebRTC(libjingle_peerconnection库)检索视频流的应用。在某些时刻,可以删除流(RTCVideoTrack)。当这种情况发生在UIView(RTCEAGLVideoView)时仍然显示流的最后一帧。我想将该视图设置为黑色。我该怎么办?

现在我使用以下代码删除流,但正如我所说,最后一帧仍在视图中显示。

remoteVideoTrack.setEnabled(false) // RTCVideoTrack object
remoteVideoTrack.remove(videoView) // videoView is the RTCEAGLVideoView UI object
remotePeerConnection.close()

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。但是,在某些情况下可能无法接受黑色视图,因此我需要渲染器视图变得完全透明。

由于在我的情况下,视频聊天视图控制器显示在容器中,因此我能够通过完全重新加载容器使渲染器的最后一帧消失。

这是相关代码:

        // Kill renderer
    vcWebRtc?.willMove(toParent: nil)
    vcWebRtc?.view.removeFromSuperview()
    vcWebRtc?.removeFromParent()
    
    vcWebRtc = UIStoryboard.instance(from: .WebRTC).instantiateInitialViewController() as? WebRtcVC
    if vcWebRtc != nil{
        addChild(vcWebRtc!)
        viewWebRtcContainer.addSubview(vcWebRtc!.view)
        vcWebRtc!.view.frame = viewWebRtcContainer.bounds
        vcWebRtc?.didMove(toParent: self)
        vcWebRtc?.delegate = self}