0

我像这样获得 AVURLAsset 的 URL:

NSURL *url = [[asset defaultRepresentation] url];

在控制台中,AVURLAsset 的 url 如下所示:

assets-library://asset/asset.mov?id=A3210417-4BAC-1C78-BD93-4BDD286247D9&ext=mov

我尝试从 URL 获取带有扩展名的文件名,如下所示:

NSString *last = [[url URLByDeletingPathExtension] lastPathComponent];
NSString *tnFileName = [NSString stringWithFormat:@"%@_tn.%@", last, url.pathExtension];

这是 tnFileName 的控制台日志:

tnFileName =asset_tn.mov

如何获得 A3210417-4BAC-1C78-BD93-4BDD286247D9 部分的字符串?或者资产是否有不同的唯一 ID 用于缓存资产的静止图像?

为了澄清,我需要将缩略图存储到磁盘,并且我想使用与资产匹配的名称。

4

2 回答 2

3

像这样玩字符串:

NSString * urlName = @"assets-library://asset/asset.mov?id=A3210417-4BAC-1C78-BD93-

4BDD286247D9&ext=mov";

    NSArray *arr = [urlName componentsSeparatedByString:@"id"];

    NSString *str = [arr lastObject];

    NSArray *arr1 = [str componentsSeparatedByString:@"&"];

    NSLog(@"array is %@",arr1);

    NSString *str2 = [[arr1 objectAtIndex:0] substringFromIndex:1];

    NSLog(@"str2 is %@",str2);

输出将是 A3210417-4BAC-1C78-BD93-4BDD286247D9 :)

于 2013-10-04T10:40:22.487 回答
0

试试这样:

NSString * urlName = @"assets-library://asset/asset.mov?id=A3210417-4BAC-1C78-BD93-

4BDD286247D9&ext=mov";

NSArray *arr = [urlName componentsSeparatedByString:@"id"];

NSString *str = [arr lastObject];

NSArray *arr1 = [str componentsSeparatedByString:@"&"];

NSLog(@"array is %@",arr1);

NSString *str2 = [[arr1 objectAtIndex:0] substringFromIndex:1];

NSLog(@"str2 is %@",str2);
于 2013-10-04T09:14:08.183 回答