我实现了一个使用WebRTC(libjingle_peerconnection库)检索视频流的应用。在某些时刻,可以删除流(RTCVideoTrack)。当这种情况发生在UIView(RTCEAGLVideoView)时仍然显示流的最后一帧。我想将该视图设置为黑色。我该怎么办?
现在我使用以下代码删除流,但正如我所说,最后一帧仍在视图中显示。
remoteVideoTrack.setEnabled(false) // RTCVideoTrack object
remoteVideoTrack.remove(videoView) // videoView is the RTCEAGLVideoView UI object
remotePeerConnection.close()
答案 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}