1

我有一个作为 NSData 的视频文件。如何将 NSData 文件作为视频写入 Photolibrary/SavedPhotosAlbum?

我通过以下代码使用 UIimage 完成了它。我有一个 UiImage 作为myNsData (NSData)

UIImage *viewImage = [UIImage imageWithData:myNsData];    

  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  
  // Request to save the image to camera roll  
  [library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
}

我怎样才能为视频做同样的功能。

我在 NSData 类中搜索。

我发现只有两种方法。他们是

(void)writeVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;

- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL;

其中两个正在使用 URL。实际上,除了 Photolibrary/SavedPhotosAlbum 之外,我不想在任何地方写入 NSData 文件。

我需要将 NSData 文件直接写入 Photolibrary/SavedPhotosAlbum 中,就像我保存了一张图片一样。如何做到这一点?有人可以帮帮我吗?

4

1 回答 1

1

您需要使用视频 AVAssetWriterInput 创建一个 AVAssetWriter 并将您的数据添加到输入中。

创建 AVAssetWriter 时,需要为资产指定 URL。

在您可以使用 ALAssetsLibrary (writeVideoAtPathToSavedPhotosAlbum:completionBlock:) 将资产写入照片库后,使用上面创建的资产的 url。

于 2011-09-03T06:36:17.477 回答