如何将 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?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 5 - ALAssets 库 - 将视频的 URL 从资产转换为 NSDATA 文件