2013-10-26 4 views
2

Я использую AVAssetWriter для записи аудио (и/или видео) в формат видеоролика Quicktime. Как я периодически (каждые пару минут) сохраняю (или резервирует) этот файл, не останавливая сеанс (т. Е. Продолжать запись)?Резервное копирование и восстановление файлов AVAssetWriter

Вот код, я использую, чтобы скопировать файл во время записи:

NSString* filename = [NSString stringWithFormat:@"mediaFile.mp4"]; 
NSString* path = [NSTemporaryDirectory() stringByAppendingPathComponent:filename]; 
NSURL* existingURL = [NSURL fileURLWithPath:path]; 

path = [myAppDocumentsDirectory stringByAppendingPathComponent:filename]; 
NSURL* copyURL = [NSURL fileURLWithPath:path]; 

[[NSFileManager defaultManager] copyItemAtURL:existingURL toURL:copyURL error:nil]; 

Файл создается, но, как представляется, нечитаемым, если я не вызвать что-то вроде:

[assetWriter finishWritingWithCompletionHandler: handler]; 

Так что механизм резервного копирования файла во время записи? Кажется, что нет способа вызвать finalWritingWithCompletionHandler, а затем добавить новый сеанс в тот же файл (т. Е. Не существует механизма паузы, сохранения, возобновления, который я могу найти). Возможно, есть способ правильно закрыть или «закончить» файл после копии?

Если необходим случай использования, возможно, приложение может быть отключено системой из-за низкого заряда батареи или системы. Перезапуск приложения должен позволить пользователю восстановить этот файл и воспроизвести его.

+0

Вы нашли решение? Я в той же ситуации. – Ponja

+0

Извините, но нет, я до сих пор не нашел решения. – kanso

+0

Я ищу то же самое решение. Кто-нибудь нашел решение? –

ответ

0

Я нашел решение. Вы должны написать это раньше, чтобы начать запись. Это сохранит файл каждый интервал времени. Тогда, если ваше приложение аварийно, видео будет воспроизводиться.

[_assetWriter setMovieFragmentInterval:CMTimeMake(1, 600)]; 
Смежные вопросы