Skip to content

PlanetaToBe/SceneKitVideoRecorder

 
 

Repository files navigation

SceneKitVideoRecorder

Version License Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Installation

SceneKitVideoRecorder is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "SceneKitVideoRecorder"

Usage

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?.setupMicrophone()
  try! 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!)
  })
}

Performance tips

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.

Author

Omer Karisman

Lead UI/UX @ MojiLaLa
Twitter Dribble Github
Sahin Boydas

Co-Founder @ MojiLaLa
LinkedIn

Inspired from

noppefoxwolf, noppelabs@gmail.com

License

SceneKitVideoRecorder is available under the MIT license. See the LICENSE file for more info.

About

A simple recorder for SceneKit.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 76.3%
  • Ruby 23.7%