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 に答える