Jetzt teste ich ARKit / SceneKit-Implementierung. Das grundlegende Rendern auf dem Bildschirm funktioniert irgendwie, dann möchte ich versuchen, das, was ich auf dem Bildschirm sehe, in ein Video aufzunehmen.
Nur für die Aufnahme von Scene Kit fand ich diesen Gist :
%Vor%aber das Bild wird nicht von der Gerätekamera gerendert.
Also habe ich angefangen nach dem Weg zu suchen, dies auch zu tun. Bisher habe ich den Weg gefunden, das aufgenommene Bild als CVImageBufferRef zu greifen, indem ich auf ARFrame zugreife. Und Apples GLCameraRipple-Beispiel scheint mir dabei zu helfen, die OpenGL-Textur daraus zu machen.
Aber meine Frage ist, wie man es in der Rendering-Schleife zeichnet. Dies mag für OpenGL-erfahrene OpenGL-Entwickler offensichtlich sein, aber ich habe nur sehr wenig Wissen über OpenGL, daher kann ich nicht herausfinden, wie ich das zu dem obigen Code hinzufügen kann.
Sie können alles, was auf dem Bildschirm zu sehen ist, aufzeichnen (oder es live an Dienste wie Twitch senden), indem Sie ReplayKit , ARKit und SceneKit Inhalt enthalten.
(Wie Apple auf der WWDC erklärt hat, ist ReplayKit tatsächlich die Grundlage für die Bildschirmaufnahmefunktion des Control Center in iOS 11.)
Ich weiß nicht, ob Sie es bis jetzt geschafft haben oder nicht, aber lacyrhoades, die Person, die die Klasse geschrieben hat, auf die Sie verwiesen haben, hat ein anderes Projekt auf github veröffentlicht, das zu tun scheint, wonach Sie fragen. Ich habe es benutzt und es schafft, das SceneView mit AR-Objekten sowie den Kameraeingang aufzunehmen. Sie können es über diesen Link finden:
Wenn Sie es jedoch mit AR verwenden möchten, müssen Sie das ARSceneView für das Projekt konfigurieren, das er erstellt, da sein Szenario nur ein SceneView ausführt, nicht eines mit AR.
Ich hoffe, es hilft.
Ich habe gerade dieses Framework gefunden, ARVideoKit genannt, und es scheint einfach zu implementieren zu sein, außerdem haben sie mehr Funktionen wie GIFs und Live-Fotos.
Das offizielle Framework-Repo ist: Ссылка
Um es zu installieren, müssten Sie den Repo klonen und die .framework-Datei in die eingebettete Binärdatei Ihres Projekts ziehen.
Dann ist die Implementierung ziemlich einfach:
import ARVideoKit
in Ihrer UIViewController
-Klasse
Erstellen Sie eine RecordAR?
Variable
var videoRec:RecordAR?
Initialisiere deine Variable in viewDidLoad
videoRec = RecordAR(ARSpriteKit:sceneView)
Bereiten Sie RecordAR
in viewWillAppear
videoRec.prepare(configuration)
Beginnen Sie mit der Aufnahme eines Videos
videoRec.record()
Stoppen und auf Kamera rollen exportieren!
videoRec.stopAndExport()
Sehen Sie sich die Dokumentation des Frameworks an, es unterstützt mehr Funktionen zur Verwendung!
Sie finden ihre Dokumentation hier: Ссылка
Hoffe, dass geholfen hat!
Wenn Sie Ihr Gerät mit Ihrem Mac verbinden können, ist es sehr einfach, mit dem QuickTime Player Bildschirm (und Ton) von Ihrem iOS-Gerät aufzunehmen.
Wählen Sie in QuickTime eine neue Filmaufnahme im Menü Datei und dann im Aufnahme-Dialog neben der großen roten Aufnahmetaste einen kleinen Dropdown-Pfeil, über den Sie den Audioeingang und den Videoeingang auswählen können. Wählen Sie Ihr i-Gerät dort und Sie sind bereit zu gehen.
Wenn Sie ARKit verwenden, verwenden Sie iOS 11.
iOS 11 bietet integrierte Bildschirmaufnahmen (mit Mikrofonunterstützung).
Allerdings ist es ab iOS 11 Beta 2 ein kleiner Buggy - funktioniert aber.
Zusammenfassend:
Der fehlerhafte Teil ist, dass es mit einigen Landschaftsanwendungen nicht funktioniert und es nicht immer aufzeichnet.
Hier ist ein Tutorial, das ich ausführlicher geschrieben habe: