如何将 NSData 文件作为视频写入 Photolibrary/SavedPhotosAlbum?

Posted

技术标签:

【中文标题】如何将 NSData 文件作为视频写入 Photolibrary/SavedPhotosAlbum?【英文标题】:how can i write a NSData file as Video in to Photolibrary/SavedPhotosAlbum? 【发布时间】:2011-09-03 00:30:40 【问题描述】:

我有一个视频文件作为 NSData。

我通过以下代码使用 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 中,就像我保存了一张图片一样。怎么做?谁能帮帮我?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于如何将 NSData 文件作为视频写入 Photolibrary/SavedPhotosAlbum?的主要内容,如果未能解决你的问题,请参考以下文章

将 NSData 写入桌面文件

Xcode(Cocoa)如何将字节写入 NSData

iOS 5 - ALAssets 库 - 将视频的 URL 从资产转换为 NSDATA 文件

如何在 elcImagePickerController 中获取视频的 NSData?

如何将 mp4 转换为 NSData?

如何将带有 NSValue 对象的 NSDictionary 保存到文件中