#iphone #objective-c #ios4 #mpmovieplayercontroller #mpmovieplayer
#iPhone #objective-c #ios4 #mpmovieplayercontroller #mpmovieplayer
Вопрос:
У меня есть MPMoviePlayer, который загружает фильм из потока. Я реализовал тайм-аут на 15 секунд с помощью таймеров. Но, может быть, есть какой-то другой лучший способ реализовать тайм-аут без таймера?
Ответ №1:
Зарегистрируйтесь для MPMoviePlayerLoadStateDidChangeNotification
. В его обработчике проверьте текущее состояние загрузки и замаскируйте MPMovieLoadStateStalled
.
- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification
{
//is the player stalled, hence possibly starving?
if ((movieController_.loadState amp; MPMovieLoadStateStalled) == MPMovieLoadStateStalled)
{ //yes->do something
NSLog(@"hey there, I am starving to death here");
}
}
Возможно, вы захотите зарегистрировать таймер в верхнем if-предложении — например, 10 секунд. Как только у этого дочернего устройства закончится время без дальнейших изменений состояния, сделайте что-нибудь, чтобы завершить / пропустить воспроизведение видео.
Ответ №2:
Я не уверен, но я думаю, что это можно использовать performSelector
в качестве таймера?
[self performSelector:@selector(checkTimeout:) withObject:theMovie afterDelay:15];
а затем проверьте состояние фильма.