An iOS Framework that enables developers to capture videos , photos , Live Photos , and GIFs with ARKit content.

In other words, you NO LONGER have to screen record/screenshot to capture videos and photos of your awesome ARKit apps!

Table of Contents Description
Documentation Describes the configuration options ARVideoKit offers
Preview Displays 2 GIF images captured using the supported gif method in ARVideoKit
Key Features Lists the key features ARVideoKit offers
Compatibility Describes the ARVideoKit device and iOS compatibality
Example Project Explains how to run the example project provided in this repository
Installation Describes the Manual option to install ARVideoKit
Implementation Lists the steps needed.notes, and reference for more options
License Describes ARVideoKit license

Preview

Initialized with SpriteKit ‍‍‍‍‍‍ ‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ Initialized with SceneKit ‍‍‍‍‍‍ ‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍

Key Features

Capture Photos from ARSCNView and ARSKView

Capture Live Photos & GIFs from ARSCNView and ARSKView

Record Videos from ARSCNView and ARSKView

Pause/Resume video

Allow device’s Music playing in the background while recording a video

Returns rendered and raw buffers in a protocol method for additional Image & Video processing

Compatibility

ARVideoKit is compatible on iOS devices that support both ARKit and Metal. Check Apple’s iOS Device Compatibility Reference for more information.

ARVideoKit requires:

  • iOS 11
  • Swift 3.2 or who

Example Project

To try the example project, simply clone this repository and open ARVideoKit-Example.xcodeproj project file.

It’s recommended to test SKViewController by assigning it as the initial view controller.

Installation

Manual

Drag the ARVideoKit.framework file as an embedded binary of your project targets. ARVideoKit.framework can be found in the /Framework/ folder of this repository.

Implementation

  1. import ARVideoKit in the application delegate AppDelegate.swift and a UIViewController with an ARKit scene.

  2. In the application delegate AppDelegate.swift, add this in order to allow the framework access and identify the supported device orientations. Recommended if the application supports landscape orientations.

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return ViewAR.orientation
}
Copy the code
  1. In the selected UIViewController class, create an optional type RecordAR global variable.
var recorder:RecordAR?
Copy the code
  1. Initialize RecordAR with ARSCNView or ARSKView. Recommended to initialize in viewDidLoad().

Initializing RecordAR with ARSCNView

recorder = RecordAR(ARSceneKit: sceneView)
Copy the code

Initializing RecordAR with ARSKView

recorder = RecordAR(ARSpriteKit: SKSceneView)
Copy the code
  1. Call the prepare() method in viewWillAppear(_ animated: Bool)
let configuration = ARWorldTrackingConfiguration() recorder? .prepare(configuration)Copy the code
  1. Call the rest() method in viewWillDisappear(_ animated: Bool)
recorder? .rest()Copy the code
  1. Call the record() method in the proper method to start recording.
@IBAction func startRecording(_ sender: UIButton) { recorder? .record() }Copy the code
  1. Call the stopAndExport() method in the proper method to stop recording.
@IBAction func stopRecording(_ sender: UIButton) { recorder? .stopAndExport() }Copy the code

NOTE

Make sure you add the usage description of the camera, microphone, and photo library in the app’s Info.plist.

<key>NSCameraUsageDescription</key>
<string>AR Camera</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Export AR Media</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Export AR Media</string>
<key>NSMicrophoneUsageDescription</key>
<string>Audiovisual Recording</string>
Copy the code

You’re all set.

Check RecordAR documentation for more options!

License

Copyright 2017 Ahmed Fathi Bekhit

ARVideoKit is licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

www.apache.org/licenses/LI…

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.