AVURLAsset не загружается (файл .mov)

Я пытаюсь загрузить файл с именем output.mov (созданный на iPhone) как AVURLAsset, используя следующий код:

NSURL *outputURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), @"output.mov"]];

AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:outputURL options:nil];

Файл находится в каталоге tmp приложения. Никаких ошибок не появляется, но кажется, что ресурс не загружен, так как метаданные недоступны (т. е. вызов NSLog(@"%@", [videoAsset commonMetadata]) ничего не возвращает), поэтому я ничего не могу сделать с ресурсом.

Я использовал следующий код, чтобы убедиться, что ресурс доступен через URL-адрес, и это определенно выглядит так:

if ([outputURL checkResourceIsReachableAndReturnError:&err] == NO)
        NSLog(@"Not reachable!");

поэтому я не уверен, почему актив не загружается. Я также пытался загрузить ресурс с помощью [AVAsset assetWithURL:], но это тоже не работает.

Любая помощь будет принята с благодарностью.


person Skoota    schedule 16.03.2013    source источник
comment
Это может быть так, но это не решает проблему. Использование NSURL *outputURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"output.mov"]]; приводит к точно такой же проблеме. Я также не думаю, что это особенно разумные основания для того, чтобы проголосовать против этого вопроса - вопрос совершенно законный и действительный.   -  person Skoota    schedule 16.03.2013
comment
Удалось ли вам разобраться в вопросе, Скуота?   -  person KingPolygon    schedule 21.08.2016


Ответы (1)


Это может быть из-за кодировки вашего файла. Например, если этот файл был закодирован с помощью кодека Sorenson 3 (SVQ3), вам необходимо модернизировать медиафайл, прежде чем передавать его кодеку AVURLAsset. Вы можете сделать это, используя класс QTMovieModernizer.

person Narek Aydinyan    schedule 06.02.2020