Я собираюсь освободить киноплеер (theMovie), а затем начать другое действие (так называемое playButtonClicked) после его полной версии. Я использовал performSelector для задержки «playButtonClicked» в течение 1 секунды, и он работает хорошо. Код:Как узнать выпуск фильма?
[theMovie release]; [self performSelector: @selector (playButtonClicked) withObject: nil afterDelay: 1];
Однако я не хочу, чтобы всегда откладывать 1 секунду. Я хочу запустить «playButtonClicked», как только «theMovie» будет полностью выпущен. Я попробовал следующий код, но это не сработало, потому что [timer userInfo] никогда не является ничем. Кто-нибудь знает, как проверить выпуск фильма.
[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];
Код waitForRleaseFinish: (NSTimer *) Таймер:
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];
}
Порадуйтесь помогает. Спасибо.
Благодарим вас за ответ. Это звучит разумно. К сожалению, если я не задерживаю 1-сек (даже 0,5 с), программа работает неправильно. релиз theMovie находится в «moviePlayerDidFinsh», а затем начинает играть другой фильм. Поскольку в игре {}, TheMoive снова воссоздается, он должен быть выпущен первым. MPMoviePlayerController * mp = [[MPMoviePlayerController alloc] initWithContentURL: [self getMovieURL]]; \t если (тр) \t { \t \t // сохранить объект фильма игрок \t \t self.theMovie = тр; \t \t [mp release]; \t} – vicky
Если theMovie является сохраняющим свойством, он должен высвободить старое значение самостоятельно. Поэтому, если theMovie является сохраняющим свойством (и это должно быть), вы не должны вручную его выпускать. Просто позвоните [self playButtonClicked], и когда вы установите свойство для нового проигрывателя видео, он выпустит старый. – mk12