我正在准备AVURLAsset
的一种方法的网址:
+ (AVURLAsset *)URLAssetWithURL:(NSURL *)URL options:(NSDictionary *)options
我的网址属于一个写入我的应用文档路径的文件。 NSLog
路径的结果是:
/var/mobile/Containers/Data/Application/E0E64E72-9A47-4E62-B9C6-818AB8BF3F4C/Documents/audio.wav
获得NSString *path
后,我尝试按[NSURL URLWithString:path]
和[NSURL fileURLWithPath:path]
将NSString转换为NSURL,但URLAssetWithURL
都不正确。
URLWithString
的错误是:
错误域= AVFoundationErrorDomain代码= -11800“操作可以 未完成“UserInfo = 0x170269f80 {NSUnderlyingError = 0x17405f440 “操作无法完成。(OSStatus error -12780。)”, NSLocalizedFailureReason =发生未知错误(-12780), NSLocalizedDescription =无法完成操作}
fileURLWithPath
崩溃了该应用。
我知道url = [[NSBundle mainBundle] URLForResource:fileURL withExtension:@"wav"]
符合这种情况。但我想得到一个本地文件的URL也适合URLAssetWithURL
。任何的想法?感谢。
答案 0 :(得分:0)
这种从文档中获取文件的方式应该有效:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths.firstObject stringByAppendingPathComponent:@"file"] stringByAppendingPathExtension:@"wav"];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
NSURL *url = [NSURL fileURLWithPath:path];
}