我是一名OS X編程新手,我必須以不同的時間間隔從互聯網上獲得一堆NSImages,並從中構建一個漸進式電影文件。例如,NSImage的到達速率可以從毫秒到3秒之間的任何地方。使用QTKit以隨機幀速率將NSImages添加到電影中
我想知道如果這是正確的方式做它用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;
}
非常感謝。我試圖看看如何使用QTTime API來完成時間戳記和時間增量,但是我沒有看到任何可用於記錄當前時間的QTTime函數,然後採取差異,以便可以將它與addImage一起使用: duration:withAttributes方法。 – 2013-02-27 03:02:20