2015-03-05 4 views
0

Я готовлюсь к URL одного метода AVURLAsset:Неправильный адрес для AVURLAsset

+ (AVURLAsset *)URLAssetWithURL:(NSURL *)URL options:(NSDictionary *)options

Мой URL принадлежит к файлу, который написан на документ пути моего приложения. Результатом NSLog пути является:

/var/mobile/Containers/Data/Application/E0E64E72-9A47-4E62-B9C6-818AB8BF3F4C/Documents/audio.wav

После получил NSString *path , Я попытался преобразовать NSString в NSURL на [NSURL URLWithString:path] и [NSURL fileURLWithPath:path], но оба они неверны для URLAssetWithURL.

Ошибка URLWithString является:

Ошибка домена = AVFoundationErrorDomain Code = -11800 "Операция может не может быть завершена" UserInfo = 0x170269f80 {NSUnderlyingError = 0x17405f440 «Операция не может быть завершена (. OSStatus ошибки -12780.)», NSLocalizedFailureReason = произошла неизвестная ошибка (-12780), NSLocalizedDescription = операция не может быть завершена}

И fileURLWithPath разбил приложение.

Я знаю, что url = [[NSBundle mainBundle] URLForResource:fileURL withExtension:@"wav"] соответствует ситуации. Но я хочу, чтобы URL-адрес локального файла соответствовал URLAssetWithURL. Есть идеи? Благодарю.

+1

Параметр 'fileURLWithPath' это правильный путь, чтобы преобразовать путь к файлу URL. Вы говорите, что это «разбило приложение». Что именно произошло? Был ли URL-адрес файла в порядке? Вы подтвердили, что файл был найден в этом месте? – Rob

+0

@Rob Когда он разбился, Xcode только отобразил сообщение: terminate called throwing exception (lldb). И авария произошла до того, как URL-адрес файла может быть подключен к консоли (тот же код, за исключением замены URLWithString файломURLWithPath). При использовании URLWithString URL-адрес файла был «file: ///var/mobile/Containers/.../Documents/audio.wav». – WangYudong

ответ

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]; 
} 
Смежные вопросы