Ich baue eine App, wo ich einen Screenshot einer Ansicht machen muss, deren Teilansichten Kamerasessions (AVFoundation-Sitzungen) sind. Ich habe diesen Code versucht:Machen Sie einen Screenshot von einer UIView, deren Unteransichten Kamerasessions sind
CGRect rect = [self.containerView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.containerView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Was mich effektiv eine UIImage mit den Ansichten bekommt, nur, dass die Kamera-Sitzungen sind schwarz:
ich die private Methode versucht haben UIGetScreenImage()
und funktioniert perfekt, aber wie Apple dies nicht erlaubt, kann ich es nicht verwenden. Ich habe auch das in Apple's docs versucht, aber es ist das gleiche. Ich habe das Problem zu AVFoundation-Sitzungen mit Layern verfolgt. Wie kann ich das erreichen? Die App verfügt über eine Containeransicht mit zwei Ansichten, bei denen Kamerasitzungen gestoppt werden.
Ich hatte auch dieses Problem eine Weile zurück. Das Problem bestand darin, dass die Kameravorschauebene (sowie einige benutzerdefinierte Rendering-Ebenen) OpenGL verwenden. Die Methode, die Sie verwenden, funktioniert nicht mit GL-unterstützten Layern, wie ich mich erinnere. Ich werde fragen und sehen, ob das tatsächlich stimmt. –
@SteveMcFarlin haben Sie einen Weg finden, um das Problem zu lösen, ich habe das gleiche Problem konfrontiert http://stackoverflow.com/questions/41239254/take-screenshot-during-video-call-screenshot-for-uiview-with-camera -session-sub – Chlebta
Haben Sie Lösungen gefunden? – Chlebta