Comment puis-je voir la progression de la conversion d'un film avec le code QTKit suivant? C'est-à-dire que je veux voir la progression de la conversion de film de sorte que je puisse l'afficher dans une barre de progression.Comment visualiser la progression de la conversion d'un film avec QTKit?
Répondre
tiré de ce site: http://www.mactech.com/articles/mactech/Vol.21/21.08/Threads/index.html
Si le film est très grande, cette méthode pourrait prendre un certain temps pour terminer. Pendant ce temps, l'utilisateur serait incapable de faire quoi que ce soit avec l'application, sauf déplacer les fenêtres autour. Pas très excitant.
Une solution légèrement meilleure implique l'utilisation du film: shouldContinueOperation: withPhase: atPercent: withAttributes: méthode delegate. Ceci est une enveloppe autour de la fonction de progression de film de QuickTime, qui sera utilisée pour afficher une boîte de dialogue montrant la progression de l'exportation et permettre à l'utilisateur d'annuler l'opération. essayer ici cette
- (BOOL)movie:(QTMovie *)movie
shouldContinueOperation:(NSString *)op
withPhase:(QTMovieOperationPhase)phase
atPercent:(NSNumber *)percent
withAttributes:(NSDictionary *)attributes
{
OSErr err = noErr;
NSEvent *event;
double percentDone = [percent doubleValue] * 100.0;
switch (phase) {
case QTMovieOperationBeginPhase:
// set up the progress panel
[progressText setStringValue:op];
[progressBar setDoubleValue:0];
// show the progress sheet
[NSApp beginSheet:progressPanel
modalForWindow:[movieView window] modalDelegate:nil
didEndSelector:nil contextInfo:nil];
break;
case QTMovieOperationUpdatePercentPhase:
// update the percent done
[progressBar setDoubleValue:percentDone];
[progressBar display];
break;
case QTMovieOperationEndPhase:
[NSApp endSheet:progressPanel];
[progressPanel close];
break;
}
// cancel (if requested)
event = [progressPanel
nextEventMatchingMask:NSLeftMouseUpMask
untilDate:[NSDate distantPast]
inMode:NSDefaultRunLoopMode dequeue:YES];
if (event && NSPointInRect([event locationInWindow],
[cancelButton frame])) {
[cancelButton performClick:self];
err = userCanceledErr;
}
return (err == noErr);
}
Hope this helps.
Si vous avez besoin d'aide, faites-le moi savoir. laissez-moi savoir si cela a aidé un ptit.
PK