我想将视频从资源 URL 保存到我的应用程序文档中。我的资产网址如下:-
"assets-library://asset/asset.MOV?id=1000000394&ext=MOV"
我试过这个:-
NSString *str=@"assets-library://asset/asset.MOV?id=1000000394&ext=MOV";
NSData *videoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:str]];
[videoData writeToFile:mypath atomically:YES];
但在第二行 [NSData dataWithContentsOfURL:[NSURL URLWithString:str]] 我因为这个原因导致程序崩溃:-由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSURL 长度]:发送到实例的无法识别的选择器
我想知道如何访问资产视频网址。
谢谢你的帮助。
我认为你最好的选择是使用该方法
getBytes:fromOffset:length:error:
of
ALAssetRepresentation
您可以像这样获取资产的默认表示形式
ALAssetRepresentation *representation = [someVideoAsset defaultRepresentation];
所以我的脑海中应该是这样的(我不在我的 Mac 身边,所以这个hasn't经过测试)
ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
[assetLibrary assetForURL:videoUrl 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];
[data writeToFile:filePath atomically:YES];
} errorBlock:^(NSError *err) {
NSLog(@"Error: %@",[err localizedDescription]);
}];
Where videoUrl是您尝试复制的视频的资源 URL,并且filePath是您尝试将其保存到的路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)