To run the example project, clone the repo, and run pod install
from the Example directory first.
SceneKitVideoRecorder is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SceneKitVideoRecorder'
To install Swift 4 branch add the following line to your Podfile:
pod 'SceneKitVideoRecorder', :git => 'https://github.com/svtek/SceneKitVideoRecorder.git', :branch => 'swift4'
Add NSMicrophoneUsageDescription
to info.plist
Add below code to your view controller
var recorder: SceneKitVideoRecorder?
override func viewDidLoad() {
super.viewDidLoad()
...
recorder = try! SceneKitVideoRecorder(withARSCNView: sceneView)
}
@IBAction func startRecording (sender: UIButton) {
sender.backgroundColor = .red
//If you want to use the microphone you have to set it up before startWriting. You can do it here or earlier
self.recorder?.setupAudio()
self.recorder?.startWriting()
}
@IBAction func stopRecording (sender: UIButton) {
sender.backgroundColor = .white
self.recorder?.finishWriting(completionHandler: { [weak self] (url) in
print("Recording Finished", url)
self?.checkAuthorizationAndPresentActivityController(toShare: url, using: self!)
})
}
Here is a piece of Apple sample code
if let camera = sceneView.pointOfView?.camera {
camera.wantsHDR = true
camera.wantsExposureAdaptation = true
camera.exposureOffset = -1
camera.minimumExposure = -1
}
The line camera.wantsHDR = true
and camera.wantsExposureAdaptation = true
causes a huge drop in video recording performance. You should remove or disable it for video recording.
Omer Karisman Lead UI/UX @ MojiLaLa |
Sahin Boydas Co-Founder @ MojiLaLa |
---|
noppefoxwolf, [email protected]
SceneKitVideoRecorder is available under the MIT license. See the LICENSE file for more info.