Я пытаюсь записывать и воспроизводить фильмы с помощью своего приложения, используя qtkit. Я записываю видео в одном представлении и показываю его в другом представлении. Вот как я это делаю
- (void)startRecording
{
NSString *applicationSupportDirectory = [[NSFileManager defaultManager] applicationSupportDirectory];
NSString *path = [applicationSupportDirectory stringByAppendingPathComponent:kVideoOutputName];
NSURL *url = [NSURL fileURLWithPath:path];
// Delete the previous file
[[NSFileManager defaultManager] removeItemAtURL:url error:nil];
mCaptureMovieFileOutput.delegate = self;
[mCaptureMovieFileOutput recordToOutputFileURL:url];
}
- (void)stopRecording
{
[mCaptureMovieFileOutput recordToOutputFileURL:nil];
}
- (void)captureOutput:(QTCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL forConnections:(NSArray *)connections dueToError:(NSError *)error
{
// [[NSWorkspace sharedWorkspace] openURL:outputFileURL];
// removes the current view
[self cleanView];
MyViewController *controller = [[SharingViewController alloc] init];
controllerpath.path = outputFileURL;
[self.view addSubview:[controller view]];
[self stopCamera];
}
Теперь в моем контроллере представления я назначаю фильм своему проигрывателю фильмов.
- (void)awakeFromNib
{
NSError *error;
moviePlayer.movie = [QTMovie movieWithURL:path error:&error];
NSLog(@"%@", [error localizedDescription]);
}
Теперь этот код работает в первый раз, но мне нужно зарегистрироваться и показать несколько раз.
Здесь уже есть одна проблема. Если я хочу записывать видео несколько раз, мне нужно удалить первое, иначе после первого раза ничего не будет записывать (он жалуется, что файл уже существует).
Проблема в том, что после первого раза тоже вообще не показывает видео. Когда я выполняю [QTMovie movieWithURL: path error: & error]; он жалуется, что файл или каталог не существует, хотя на самом деле он существует (я также проверил с помощью [QTMovie canInitWithUrl:]).
Я не уверен, что здесь происходит. Пример кода Apple может записываться несколько раз, но по некоторым причинам я не могу без предварительного удаления существующего файла (хотя он работает в первый раз).
При необходимости я буду рад предоставить более подробную информацию.
РЕДАКТИРОВАТЬ: Если я каждый раз использую другое имя для видео, все работает. Так что это действительно проблема записи с одним и тем же именем каждый раз.
alloc/initWithURL:error:
вместо удобного метода? Или, если это тоже не удалось, создать редактируемый фильм, который будет храниться в течение всего срока действия этой задачи записи / воспроизведения и чей URL-адрес вы просто обновите, установив для него значениеnil
при удалении старого файла? - person danyowdee   schedule 12.06.2011