Я новичок в программировании OS X, мне нужно взять кучу NSImages, поступающих из Интернета с разным интервалом, и создать из него файл прогрессивного фильма. Например, скорость поступления NSImage может варьироваться от миллисекунд до 3 секунд.
Мне интересно, правильный ли это способ сделать это с помощью QTKit и как рассчитать частоту кадров, поскольку кадры поступают почти в случайное время.
Меня также интересует использование памяти, будет ли он пытаться сохранить весь фильм в памяти, прежде чем записывать его в конце?
Вот код, который я собрал из Интернета:
-(void)startRecording
{
NSDictionary *myDict = nil;
myDict = [NSDictionary dictionaryWithObjectsAndKeys:@"mp4v",
QTAddImageCodecType,
[NSNumber numberWithLong:codecHighQuality],
QTAddImageCodecQuality,
nil];
long long timeValue = 1;
long timeScale = 3;
QTTime duration = QTMakeTime(timeValue, timeScale);
QTMovie *mMovie =[[QTMovie alloc] initToWritableFile:@"tmpfps.tmp" error:NULL];
self.mMovie=mMovie;
self.duration=duration;
self.myDict=myDict;
}
-(void) addFrame:(NSImage*)imageFrame
{
[mMovie addImage:imageFrame
forDuration:self.duration
withAttributes:self.myDict];
}
-(void) stopRecording
{
myDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:QTMovieFlatten];
[self.mMovie writeToFile:@"my.mov" withAttributes:myDict];
self.mMovie=nil;
}