私は2人のユーザー間でビデオチャットを作成するためにWebRTCを使用しています。私はlocalView
ビューのスナップショットを撮りたいと思っています。これには人物の1人が写っています。AVCaptureVideoPreviewLayerのビューのスナップショットを取る
これはUIViewsとビデオストリームを結ぶconfigureLocalPreview
方法で私のクラスである:
@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);
}
私はスナップショットにアクセスしたい場所で、私が呼ん:
self.localView.pb_takeSnapshot()
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
}
}
私はXcodeのデバッガで画像を見てみるとき、それは完全に緑に見えると私は(そのビュー内の)iPhoneの画面上で見ることができる人は、、ではありませんそこ:
はどのような人が表示されていないことを理由だろうか?それは何とかストリームのスナップ写真を作ることはできませんか?見ていただきありがとうございます!
答えていただきありがとうございます。実際のコードをどうやってどのように見えるのか少し混乱しますバージョン。 – Linus
@ Linus私はカメラを起動し、ローカルプレビューを見るために使用できるサンプルコードスニペットを使って投稿を更新しました。 –