2015-07-01 55 views
0

我正在处理一个20秒的视频。我正要将该视频保存在我的照片库中。成功修剪视频后,我需要调用这个函数,任何人都可以帮助我在Swift中转换下面的代码。我粘贴了两个版本的代码,如果有人能识别我的错误?使用Swift将视频文件保存到照片库

目标C

-(void)writeVideoToPhotoLibrary:(NSURL*)aURL 
{ 
    NSURL *url = aURL; 
    NSData *data = [NSData dataWithContentsOfURL:url]; 

    // Write it to cache directory 
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"file.mov"]; 
    [data writeToFile:path atomically:YES]; 

    NSLog(@"Path:%@",path); 

    // After that use this path to save it to PhotoLibrary 

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:path] completionBlock:^(NSURL *assetURL, NSError *error) { 

     if (error) { 
      NSLog(@"%@", error.description); 
     }else { 
      NSLog(@"Done :)"); 
     } 

    }]; 


} 

夫特

func SaveVideoToPhotoLibrary(outputFileURL: NSURL) 

    { 

     assetsLibrary = ALAssetsLibrary() 

     let videoURL = outputFileURL as NSURL? 

     if let library = assetsLibrary{ 

      if let url = videoURL{ 

       library.writeVideoAtPathToSavedPhotosAlbum(url, 
        completionBlock: {(url: NSURL!, error: NSError!) in 

         print(url) 

         if let theError = error{ 
          print("Error happened while saving the video") 
          print("The error is = \(theError)") 
         } else { 
          print("no errors happened") 
         } 

       }) 
      } else { 
       print("Could not find the video in the app bundle") 
      } 

     } 

      } 

回答

0
func saveToCameraRoll(URL: NSURL!) { 
      NSLog("srcURL: %@", URL) 
      var library: ALAssetsLibrary = ALAssetsLibrary() 
      var videoWriteCompletionBlock: ALAssetsLibraryWriteVideoCompletionBlock = {(newURL: NSURL!, error: NSError!) in 
       if (error != nil) { 
      NSLog("Error writing image with metadata to Photo Library: %@", error) 
     } 
      else { 
      NSLog("Wrote image with metadata to Photo Library %@", newURL.absoluteString!) 
      } 

      } 
      if library.videoAtPathIsCompatibleWithSavedPhotosAlbum(URL) { 
      library.writeVideoAtPathToSavedPhotosAlbum(URL, completionBlock: videoWriteCompletionBlock) 
      } 
     } 
相关问题