用ALAssetsLibrary获取相册图片视频

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

    [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
usingBlock:^(ALAssetsGroup *group, BOOL *stop) { // Filter down to only photos
[group setAssetsFilter:[ALAssetsFilter allPhotos]]; // Grab the first photo return
[group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:]
options:
usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { id repressentation = [result defaultRepresentation]; // 可以生产一个AVAsset
NSURL *url = [repressentation url];
AVAsset *asset = [AVAsset assetWithURL:url]; // 也可以直接获取image
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithCGImage:[repressentation fullResolutionImage]]]; }
}];
} failureBlock:^(NSError *error) { NSLog(@"Error: %@", [error localizedDescription]);
}];

使用AVAsset加载资源:

    NSURL *assetURL = [[NSBundle mainBundle] URLForResource:@"guitar" withExtension:@"caf"];

    AVAsset *asset = [AVAsset assetWithURL:assetURL];

    NSArray *keys = @[@"tracks"];

    [asset loadValuesAsynchronouslyForKeys:keys completionHandler:^{

        NSError *error = nil;

        AVKeyValueStatus status = [asset statusOfValueForKey:@"tracks" error:&error];

        switch (status) {
case AVKeyValueStatusLoaded:
// 加载完资源 to do
NSLog(@"加载完");
break; case AVKeyValueStatusFailed:
// 加载失败 to do
NSLog(@"加载失败");
break; case AVKeyValueStatusCancelled:
// 加载取消 to do
NSLog(@"加载取消");
break; default:
break;
}
}];

获得元数据

    NSURL *assetURL = [[NSBundle mainBundle] URLForResource:@"" withExtension:@"m4a"];

    AVAsset *asset = [AVAsset assetWithURL:assetURL];

    NSArray *keys = @[@"availableMetadataFormats"];

    [asset loadValuesAsynchronouslyForKeys:keys completionHandler:^{

        NSMutableArray *metadata = [NSMutableArray array];
for (NSString *format in asset.availableMetadataFormats) { [metadata addObjectsFromArray:[asset metadataForFormat:format]];
} NSLog(@"meta format: %@", metadata); NSString *keySpace = AVMetadataKeySpaceiTunes;
NSString *artistKey = AVMetadataiTunesMetadataKeyArtist;
NSString *albumKey = AVMetadataiTunesMetadataKeyAlbum; NSArray *artistMetadata = [AVMetadataItem metadataItemsFromArray:metadata
withKey:artistKey
keySpace:keySpace]; NSArray *albumMetadata = [AVMetadataItem metadataItemsFromArray:metadata
withKey:albumKey
keySpace:keySpace]; AVMetadataItem *artistItem, *albumItem;
if (artistMetadata.count > ) {
artistItem = artistMetadata[];
} if (albumMetadata.count > ) {
albumItem = albumMetadata[];
}
}];

使用AVMetadataItem

NSURL *assetURL = [[NSBundle mainBundle] URLForResource:@"" withExtension:@"m4a"];

    AVAsset *asset = [AVAsset assetWithURL:assetURL];

    NSArray *metadata = [asset metadataForFormat:AVMetadataFormatiTunesMetadata];

    for (AVMetadataItem *item in metadata) {

        NSLog(@"%@: %@", item.key, item.value);
}

iOS-使用ALAssetsLibrary获取相册图片视频的更多相关文章

  1. IOS多选单选相册图片

    之前做项目让实现多选相册的图片,自己写了一个demo一直保存在电脑上,今天下午发现电脑128G的容量已经快没有了,准备清理电脑,所以把之前做的一些demo放在博客上,以后方便用. 1.首先准备3个图片 ...

  2. android开发之——获取相册图片和路径

    Android开发获取相册图片的方式网上有很多种,这里说一个Android4.4后的方法,因为版本越高,一些老的api就会被弃用,新的api和老的api不兼容,导致出现很多问题. 比如:managed ...

  3. Swift中获取相册图片与保存到相册

    关于这个网上目前位置记录的资料比较少,记录一下这个坑 获取相册图片 1: var iPC = UIImagePickerController() 2: iPC.sourceType = UIImage ...

  4. ios获取相册图片 压缩图片

    从摄像头/相册获取图片 刚刚在上面的知识中提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用.在这里,我们需要过UIImagePickerController类来和用户交互. ...

  5. uniapp+nvue实现仿微信/得物相册插件:选择界面 +自定义相册+图片视频过滤

    本篇文章基于uniapp 框架+ nvue,实现了uniapp仿微信/得物相册选择功能实例项目,该插件实例实现了以下功能: 1: 相册过滤 2: 图视频过滤 3: 界面UI定制化 4: 栅格列数定制化 ...

  6. Android获取相册图片

    1. AlertDialog的使用 2. 显示和隐式意图的区别 3. 相册页面的跳转 4. 选择完成后返回图片的获取 ----------------------------------------- ...

  7. iOS开发—— UIImagePickerController获取相册和拍照

    一.简单的拍照显示,或是从相册中直接选取照片 #import "ViewController.h" @interface ViewController ()<UIImageP ...

  8. Android 打开照相机、获取相册图片、获取图片并裁减

    一.调用照相机 注:surfaceView在当Activity不在前台的时候,会被销毁(onPause方法之后,执行销毁方法)当Activity回到前台时,在Activity执行onResume方法之 ...

  9. 照片大管家iOS-实现本地相册、视频、安全保护、社交分享一站式功能,源码开放

    <照片大管家> APP功能: 1.本地照片批量导入与编辑 2.本地视频存储与播放 3.手势密码.数字密码.TouchID安全保护 4.QQ.微信.微博.空间社交分享 5.其他细节功能. 运 ...

随机推荐

  1. servle 3.0 新特性之一 对上传表单的支持

    1. 上传 * 上传对表单的要求: > method="post" > enctype="multipart/form-data",它的默认值是:a ...

  2. boost之string_algo

    string_algo是用于处理字符串查找,替换,转换等一系列的字符串算法 前缀i:表示大小写不敏感 后缀_copy:表示不变动输入,返回处理结果的拷贝 后缀_if:表示算法需要一个判断式的谓词函数对 ...

  3. ZRGGBS00 GGB1替代问题

    ZRGGBS00ZRGGBS00ZRGGBS00 和Validation不同的是,Validation只做检测,一般不做相应数据的修改,Substitution弥补了这反面的缺陷,它和user exi ...

  4. json教程系列(3)-JSONObject的过滤设置

    我们通常对一个json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值.例如下面的类:   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  5. 每天一个Linux命令(59)wget命令

        wget命令用来从指定的URL下载文件.     (1)用法:     用法:  wget  [参数]  [URL]     (2)功能:     功能:  wget命令用来从指定的URL下载 ...

  6. 【HackerRank】Find the Median(Partition找到数组中位数)

    In the Quicksort challenges, you sorted an entire array. Sometimes, you just need specific informati ...

  7. 80211N、80211AC建链速率值(对应MCS)

    转:http://www.docin.com/p-1713976102.html?docfrom=rrela 注:各种技术对速率提升的贡献各项技术对提高传输速率的贡献如下:子载波数目增加: 802.1 ...

  8. Windos Server 2008 FTP 服务安装

    安装服务:FTP 系统环境:Windos 2008 R2 x64 安装FTP服务 管理-->角色-->添加角色-->Web 服务器 IIS 测试

  9. 利用paramiko获取上传下载远程服务器的资源信息

    # -*- coding: utf-8 -*- import paramikohostname='192.168.76.10'username='root'password='123456'param ...

  10. 【bzoj1899】[Zjoi2004]Lunch 午餐(贪心+dp)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1899 显然为了节省时间,吃饭慢的人要先打饭.于是我们可以先把所有人按吃饭时间排序,于是 ...