Я записываю видео с камеры iSight, используя QTCaptureSession.
Я хотел бы добавить изображение в конце видео, поэтому я реализовал методы делегата didFinishRecordingToOutputFileAtURL.Вот что я сделал до сих пор:
- (void)captureOutput:(QTCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL forConnections:(NSArray *)connections dueToError:(NSError *)error
{
// Prepare final video
QTMovie *originalMovie = [QTMovie movieWithURL:outputFileURL error:nil];
[originalMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
NSImage *splashScreen = [NSImage imageNamed:@"video-ending.jpg"];
NSImage *tiffImage = [[NSImage alloc] initWithData:[splashScreen TIFFRepresentation]];
id attr = [NSDictionary dictionaryWithObjectsAndKeys:@"tiff",
QTAddImageCodecType,
[NSNumber numberWithLong:codecHighQuality], QTAddImageCodecQuality,
nil];
[originalMovie addImage:tiffImage forDuration:QTMakeTime(2, 1) withAttributes:attr];
[tiffImage release];
[originalMovie updateMovieFile];
}
Проблема с этим кодом состоит в том, что, хотя quicktime играет хорошо, другие игроки этого не делают.Я уверен, что мне здесь чего-то не хватает.
Было бы здорово добавить изображение в видео перед его сохранением (чтобы избежать его два раза).Вот как я могу остановить запись прямо сейчас:
- (void)stopRecording
{
// It would be cool to add an image here
[mCaptureMovieFileOutput recordToOutputFileURL:nil];
}