ios - 怎么把ALAssets转换成NSData?

标签 ios objective-c alassetslibrary

我需要将文件从ALAssetsLibrary转换为NSData,但是我得到的是nil。

我用这个代码

 path = file:///assets-library://asset/asset.mp4?....
 NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
 NSData *dates = [NSData dataWithContentsOfURL: url];

如何正确执行此操作?

最佳答案

希望这对你有帮助

 ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
            [assetLibrary assetForURL:[[self.imagedata objectAtIndex:i] valueForKey:UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) 
            {
                ALAssetRepresentation *rep = [asset defaultRepresentation];
                Byte *buffer = (Byte*)malloc(rep.size);
                NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
                NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];//this is NSData may be what you want
                [data writeToFile:photoFile atomically:YES];//you can save image later
            } 
            failureBlock:^(NSError *err) {
                NSLog(@"Error: %@",[err localizedDescription]);
            }];

关于ios - 怎么把ALAssets转换成NSData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26057394/

相关文章:

ios - 如何在 Swift 中使用标签和 pickerview 更改和更新字符串中的某个字符

ios - 使用 UIPushBehavior 加速 UIView

ios - ALAssetsLibrary.assetForURL 中的额外参数 "result block"

iOS:url-scheme fb://event/%llu 在 6.1.1 中不再工作

IOS UITableViewRowAction : swipe on cell works randomly

iphone - 更改核心图中的 y 轴标签间隔

iphone - 如何在保存之前检查文件(视频)是否已经在 ALAssetsLibrary(相册)中?

iphone - 我可以通过屏幕截图检测导入的 ALAsset 照片是否是拍摄的吗?

iOS - 对 View 中的多个 Tableview 或 Collectionview 使用/传递手势识别器(Swift)

objective-c - 在 Objective C 中,为什么我的核心数据对象永远不会被释放?