From dc742c912fac986edb68471ccefdd7b24b928b1a Mon Sep 17 00:00:00 2001 From: Omer Karisman Date: Fri, 20 Oct 2017 07:36:15 -0700 Subject: [PATCH] Swift4 support --- SceneKitVideoRecorder/Classes/Options.swift | 2 +- .../Classes/SceneKitVideoRecorder.swift | 14 +++++++------- .../project.pbxproj | 7 +++++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/SceneKitVideoRecorder/Classes/Options.swift b/SceneKitVideoRecorder/Classes/Options.swift index aa162ab..e17a121 100644 --- a/SceneKitVideoRecorder/Classes/Options.swift +++ b/SceneKitVideoRecorder/Classes/Options.swift @@ -29,7 +29,7 @@ extension SceneKitVideoRecorder { outputUrl: URL(fileURLWithPath: NSTemporaryDirectory() + "output.mp4"), audioOnlyUrl: URL(fileURLWithPath: NSTemporaryDirectory() + "audio.m4a"), videoOnlyUrl: URL(fileURLWithPath: NSTemporaryDirectory() + "video.mp4"), - fileType: AVFileTypeAppleM4V, + fileType: AVFileType.m4v.rawValue, codec: AVVideoCodecH264, deleteFileIfExists: true, useMicrophone: true, diff --git a/SceneKitVideoRecorder/Classes/SceneKitVideoRecorder.swift b/SceneKitVideoRecorder/Classes/SceneKitVideoRecorder.swift index 55df041..0837ab6 100644 --- a/SceneKitVideoRecorder/Classes/SceneKitVideoRecorder.swift +++ b/SceneKitVideoRecorder/Classes/SceneKitVideoRecorder.swift @@ -88,7 +88,7 @@ public class SceneKitVideoRecorder: NSObject, AVAudioRecorderDelegate { self.options.videoSize = options.videoSize - writer = try! AVAssetWriter(outputURL: self.options.videoOnlyUrl, fileType: self.options.fileType) + writer = try! AVAssetWriter(outputURL: self.options.videoOnlyUrl, fileType: AVFileType(rawValue: self.options.fileType)) setupVideo() } @@ -157,7 +157,7 @@ public class SceneKitVideoRecorder: NSObject, AVAudioRecorderDelegate { func setupVideo() { - self.videoInput = AVAssetWriterInput(mediaType: AVMediaTypeVideo, + self.videoInput = AVAssetWriterInput(mediaType: AVMediaType.video, outputSettings: self.options.assetWriterVideoInputSettings) self.videoInput.mediaTimeScale = self.options.timeScale @@ -322,11 +322,11 @@ public class SceneKitVideoRecorder: NSObject, AVAudioRecorderDelegate { let aVideoAsset : AVAsset = AVAsset(url: videoUrl) let aAudioAsset : AVAsset = AVAsset(url: audioUrl) - mutableCompositionVideoTrack.append(mixComposition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: kCMPersistentTrackID_Invalid)) - mutableCompositionAudioTrack.append( mixComposition.addMutableTrack(withMediaType: AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid)) + mutableCompositionVideoTrack.append(mixComposition.addMutableTrack(withMediaType: AVMediaType.video, preferredTrackID: kCMPersistentTrackID_Invalid)!) + mutableCompositionAudioTrack.append( mixComposition.addMutableTrack(withMediaType: AVMediaType.audio, preferredTrackID: kCMPersistentTrackID_Invalid)!) - let aVideoAssetTrack : AVAssetTrack = aVideoAsset.tracks(withMediaType: AVMediaTypeVideo)[0] - let aAudioAssetTrack : AVAssetTrack = aAudioAsset.tracks(withMediaType: AVMediaTypeAudio)[0] + let aVideoAssetTrack : AVAssetTrack = aVideoAsset.tracks(withMediaType: AVMediaType.video)[0] + let aAudioAssetTrack : AVAssetTrack = aAudioAsset.tracks(withMediaType: AVMediaType.audio)[0] @@ -349,7 +349,7 @@ public class SceneKitVideoRecorder: NSObject, AVAudioRecorderDelegate { let savePathUrl : URL = self.options.outputUrl let assetExport: AVAssetExportSession = AVAssetExportSession(asset: mixComposition, presetName: AVAssetExportPresetHighestQuality)! - assetExport.outputFileType = AVFileTypeMPEG4 + assetExport.outputFileType = AVFileType.mp4 assetExport.outputURL = savePathUrl assetExport.shouldOptimizeForNetworkUse = true diff --git a/SceneKitVideoRecorderDemo/SceneKitVideoRecorderDemo.xcodeproj/project.pbxproj b/SceneKitVideoRecorderDemo/SceneKitVideoRecorderDemo.xcodeproj/project.pbxproj index 51d16cb..07f1777 100644 --- a/SceneKitVideoRecorderDemo/SceneKitVideoRecorderDemo.xcodeproj/project.pbxproj +++ b/SceneKitVideoRecorderDemo/SceneKitVideoRecorderDemo.xcodeproj/project.pbxproj @@ -126,6 +126,7 @@ TargetAttributes = { 2C1EA3781F6281C200E97D5E = { CreatedOnToolsVersion = 9.0; + LastSwiftMigration = 0910; ProvisioningStyle = Automatic; }; }; @@ -370,7 +371,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.okaris.SceneKitVideoRecorderDemo; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -388,7 +390,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.okaris.SceneKitVideoRecorderDemo; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release;