J'ai pour objectif de libérer un lecteur de film (theMovie) puis de lancer une autre action (appelée playButtonClicked) après qu'il ait été complètement libéré. J'ai utilisé performSelector pour retarder le "playButtonClicked" d'une seconde et cela fonctionne bien. Le code est le suivant :
[theMovie release] ; [self performSelector:@selector(playButtonClicked) withObject:nil afterDelay:1] ;
Cependant, je ne veux pas toujours retarder d'une seconde. Je veux lancer le "playButtonClicked" dès que "theMovie" est complètement relâché. J'ai essayé le code suivant, mais cela ne fonctionne pas car [timer userInfo] n'est jamais nul. Quelqu'un sait-il comment vérifier que la libération d'un film est terminée ?
[theMovie release];
//[self performSelector:@selector(playButtonClicked) withObject:nil afterDelay:1];
NSTimer *atimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
selector:@selector(waitForReleaseFinish:)
userInfo: (MPMoviePlayerController*) theMovie repeats:YES];
Le code de waitForRleaseFinish : (NSTimer *)timer est le suivant :
if ([timer userInfo]==nil) //here I actually want to test if (theMovie==nil),but I don't know how to do and I'm not sure if it is a correct way to determine the release finished.
{
[timer invalidate];
[self playButtonClicked];
}
J'ai hâte de recevoir de l'aide. Merci.