2017-06-26 12 views
0

トリミング機能を備えたビデオプレーヤーを開発しています。私はそのためにABVideoRangeSliderを使用しています。トリミングしてビデオを保存しようとすると、私はError Domain=NSCocoaErrorDomain Code=-1 "(null)"このエラーが発生しています。 は、ここに私のコードスニペットトリミング後にカメラロールにビデオを表示することができません

let composition = AVMutableComposition() 
    let track = composition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID:Int32(kCMPersistentTrackID_Invalid)) 

    try! track.insertTimeRange(CMTimeRangeMake(startTimeForCurrentSlice, endTimeForCurrentSlice), of: asset.tracks(withMediaType: AVMediaTypeVideo)[0] as AVAssetTrack, at: kCMTimeZero) 
    var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
    let documentsDirectory = paths[0] as String 
    let videoPathToSave = documentsDirectory.appending("mergeVideo-\(arc4random()%1000)-d.mp4") 
    let videoURLToSave = NSURL(fileURLWithPath: videoPathToSave) 

    PHPhotoLibrary.shared().performChanges({ 
     PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoURLToSave as URL) 
    }) { saved, error in 
     if saved { 
      let alertController = UIAlertController(title: "Your video was successfully saved", message: nil, preferredStyle: .alert) 
      let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil) 
      alertController.addAction(defaultAction) 
      self.present(alertController, animated: true, completion: nil) 
     } else { 
      print("Error: \(String(describing: error!))") 
     } 
    } 

すべてのヘルプは理解されるであろうさ。

答えて

0

カメラロールに保存する前にAVMutableCompositionAVAssetExportSessionまたはAVAssetWriterにエクスポートしてから、カメラロールに保存できます。

チェックアウトthisチュートリアルAVAssetExportSession用。カメラロールに保存する場合はALAssetsLibraryを使用しますが、Photosで保存できます。

関連する問題