QTMovieをハードドライブのファイルに保存しているときに奇妙な動作を見つけました..(例:デスクトップ)...デスクトップのプレビューとして開始時間フレーム画像とは異なるフレーム画像を表示します.....しかし保存した QTMovie を「Quick Time Player」で開くと、開始時に正しいフレーム画像が表示されます...
ココアのバグかもしれないと思います...
元のムービーをトリミングし、トリミングしたムービーを別のファイルに保存するためのコード スニペットを次に示します。
QTMovie *newmovie;
NSError *error = nil;
newmovie = [[QTMovie alloc] initToWritableData:[NSMutableData data] error:&error];
[newmovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
QTTime starttime = QTMakeTimeWithTimeInterval(videostarttime);
QTTime duration = QTMakeTimeWithTimeInterval(currentclipduration);
QTTimeRange range = QTMakeTimeRange(starttime, duration);
[newmovie insertSegmentOfMovie:mvmovie timeRange:range atTime:QTZeroTime];
NSDictionary *dictionary = [NSDictionary
dictionaryWithObjects:
[NSArray arrayWithObjects:
[NSNumber numberWithBool:YES],
[NSNumber numberWithBool:YES],
[NSNumber numberWithLong:kQTFileTypeMP4], // TODO - allow to select the codec
nil]
forKeys:
[NSArray arrayWithObjects:
QTMovieFlatten, QTMovieExport, QTMovieExportType, nil]];
NSString *fileextn,*underscore,*combinedstring;
clipcount++;
NSString *intString = [NSString stringWithFormat:@"%d", clipcount];
fileextn = @".MP4 ";
underscore = @"_";
intString = [intString stringByAppendingString:fileextn];
combinedstring = [underscore stringByAppendingString:intString];
NSString* filename ;
filename = [curFileName stringValue].stringByDeletingPathExtension;
filename = [filename stringByAppendingString:combinedstring];
NSString *result = [[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:filename];
[newmovie writeToFile:result withAttributes:dictionary];
[newmovie release];
誰でもこの問題を解決するのを手伝ってもらえますか?....何が間違っていたのかわかりません...「保存されたQTMovieファイルのプレビューフレーム画像はすべて期待どおりに機能しています...
よろしくお願いします、ムトゥ