这就是我的assests-library视频网址, assets-library://asset/asset.mov?id = 6EDBB011-3C29-4502-A688-5467E420376A&amp; ext = mov 。< / p>
但是当我将此URL传递给NSFileHandler时,它会返回nil并显示错误。
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingFromURL:mediaURL error:&error];
错误是,
错误域= NSCocoaErrorDomain代码= 2&#34;操作不可能 完成。 (可可错误2。)&#34;的UserInfo = 0x15dbc0c0 {NSFilePath = / asset.mov}。
如何解决问题?
答案 0 :(得分:0)
只有在分配AlassetsLibrary时,该URL才有效。当您尝试使用文件句柄访问URL时,检查您的ALAssetsLibrary仍然不是。
<强>加强>
在这种情况下,您可以使用singleton
模式。
·H
@interface AssetsHelper : ALAssetsLibrary
+ (ALAssetsLibrary *)shared;
@end
的.m
@implementation AssetsHelper
+ (ALAssetsLibrary *)shared {
static ALAssetsLibrary *library = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
library = [[ALAssetsLibrary alloc] init];
});
return library;
}
@end
然后,只要您拨打ALAssetsLibrary
,就可以获得相同的[ALAssetsHelper shared]
个实例。
答案 1 :(得分:-1)
我通过将资源 - 图书馆视频保存到临时位置并使用NSFileHandle的位置路径解决了这个问题。我想不可能将断言URl路径发送到NSFileHandle。