Nik*_*iko 5 uiview ios avcapturesession webrtc
我正在使用WebRTC在两个用户之间建立视频聊天.我想拍摄localView
视图的快照,其中显示了其中一个人.
这是我的课程configureLocalPreview
,它将视频流与UIViews连接起来:
@IBOutlet var remoteView: RTCEAGLVideoView!
@IBOutlet var localView: UIView!
var captureSession: AVCaptureSession?
var videoSource: RTCAVFoundationVideoSource?
var videoTrack: RTCVideoTrack?
func configureLocalPreview() {
self.videoTrack = self.signaling.localMediaStream.self.videoTracks.first as! RTCVideoTrack?
self.videoSource = (self.videoTrack?.source as? RTCAVFoundationVideoSource)
self.captureSession = self.videoSource?.self.captureSession
self.previewLayer = AVCaptureVideoPreviewLayer.init(session: self.captureSession)
self.previewLayer.frame = self.localView.bounds
self.localView.layer.addSublayer(self.previewLayer)
self.localView.isUserInteractionEnabled = true
//self.localView.layer.position = CGPointMake(100, 100);
}
Run Code Online (Sandbox Code Playgroud)
在我想要访问快照的地方,我打电话给:
self.localView.pb_takeSnapshot()
Run Code Online (Sandbox Code Playgroud)
pb_takeSnapshot
来自UIView扩展,我在另一篇文章中找到了它.它的定义如下:
extension UIView {
func pb_takeSnapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
drawHierarchy(in: self.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
Run Code Online (Sandbox Code Playgroud)
当我看一下Xcode调试器中的图像时,它看起来完全是绿色的,而我在iphone屏幕上(在该视图内)可以看到的人不在那里:
这个人不可见的原因是什么?难道不知道是不可能制作一个流的快照?谢谢你看看!
归档时间: |
|
查看次数: |
958 次 |
最近记录: |