An iOS Framework Capture & record ARKit videos, photos, Live Photos and GIFs with ARKit
ARVideoKit
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!
Preview
? Initialized with SpriteKit? | ? Initialized with SceneKit ? |
---|---|
Key Features
✅ Capture Photos from ARSCNView
, ARSKView
, and SCNView
✅ Capture Live Photos & GIFs from ARSCNView
, ARSKView
, and SCNView
✅ Record Videos from ARSCNView
, ARSKView
, and SCNView
✅ 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 higher
Example Projects
To try the example project, simply clone this repository and open the Examples
folder to choose between the Objective-C and Swift project files.
Installation
Cocoapods
- Add this line to your project's
Podfile
(for Swift 5.0)
pod 'ARVideoKit', '~> 1.5.51'
- Install the pod
$ pod install
Carthage
- Add this line to your project's
Cartfile
github "AFathi/ARVideoKit" ~> 1.31
- Update your Carthage directory
$ carthage update
Swift Package Manager (available Xcode 11.2 and forward)
- In Xcode, select File > Swift Packages > Add Package Dependency.
- Follow the prompts using the URL for this repository.
Manual
Drag ARVideoKit.xcodeproj
into your project and click the + button in the embedded binaries section of your project's target.
Implementation
Swift
Click here to check the Swift implementation steps.
Objective-C
Click here to check the Objective-C implementation steps.
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>
You're all set. ?
Check RecordAR
documentation for more options!
Publishing to the App Store
Before publishing to the App Store make sure to add the ARVideoKit License to your app licences list.
- Build ARVideoKit for release
Open ARVideoKit.xcodeproj
Select ARVideoKitRelease scheme with Generic iOS Device
Build the project (cmd + B)
Right click on Products/ARVideoKit.framework -> Show in finder
Copy and replace ARVideoKit.framework in your project
Additionally, if you are using the binary build from Framework Build
or the latest release, you MUST strip out the simulator architectures from the framework before pushing an application to the App Store.
To do so, follow those steps:
- Install Carthage
Download
Carthage.pkg
from here
Or install with Homebrew using this command
brew install carthage
-
Go to your project target's
Build Phase
-
Add a new
Run Script Phase
-
Add the following command to the
Run Script Phase
/usr/local/bin/carthage copy-frameworks
- Finally, add
ARVideoKit.framework
file path as anInput File
. In my case, I have it in a folder namedFrameworks
inside my project folder
Donate
Donations will support me to keep maintining ARVideoKit Framework ❤️
Contributions
If you have an idea for a new ARVideoKit feature/functionality and want to add it to this repository, feel free to fork the project and create a pull request!
Also, feel free to create an issue if you have any suggestions or need any help ☺️
Apps using ARVideoKit
App | Description |
---|---|
Pathica | The first proof of the theory of "six degrees of separation" which is the idea that any two people on the planet can be connected through five or fewer individuals. |
Our SolAR | An app that allows you to see our Solar System anywhere at all! |
In The Walls | Uses real time face tracking and AR to put your face in any real world wall! |
ScribScrab | ScribScrab is a tool for creativity. You’re only limited to your imagination and your battery life. |
Feel free to add your application to this list!
License
ARVideoKit Framework
Copyright 2018 Ahmed Fathi Bekhit, www.ahmedbekhit.com, me@ahmedbekhit.com
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