Я дразнил свой мозг, пытаясь понять это: я играю несколько видео с MoviePlayerViewController, но когда я пытаюсь встряхнуть, чтобы воспроизвести случайное видео с помощью акселерометра, я получаю сбой, когда он пытается переключиться на новый фильм.Переход с MoviePlayerViewController, вызывающий сбой
Вот код, который играет в фильме:
-(void)playMovieAtURL:(NSURL*)theURL {
MPMoviePlayerViewController* theMovie=[[MPMoviePlayerViewController alloc] initWithContentURL:theURL];
if (theMovie){
[self presentMoviePlayerViewControllerAnimated:theMovie];
theMovie.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[theMovie.moviePlayer play];
[theMovie release];
}
}
А вот код акселерометр:
- (void) accelerometer: (UIAccelerometer *)accelerometer didAccelerate: (UIAcceleration *)acceleration {
if (self.lastAcceleration) {
if (!shakeDetected && IsDeviceShaking(self.lastAcceleration, acceleration, 0.7)) {
shakeDetected = YES;
NSLog(@"Shake detected");
int filescount = [entries count];
int randomIndex;
for(int index = 0; index < filescount; index++)
{
randomIndex= arc4random() % filescount;
[entries exchangeObjectAtIndex:index withObjectAtIndex:randomIndex];
}
AppRecord *app = [entries objectAtIndex:randomIndex];
contentController.detailItem = app;
[self playMovieAtURL:[NSURL URLWithString:app.applink]];
}
else if (shakeDetected && !IsDeviceShaking(self.lastAcceleration, acceleration, 0.2)) {
shakeDetected = NO;
}
}
self.lastAcceleration = acceleration;
}
Катастрофа происходит при переключении видео на этом месте:
[self presentMoviePlayerViewControllerAnimated:theMovie];
Ошибка отладчика, когда я встряхиваю, чтобы изменить видео:
Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Попытка начать модальный переход от UINavigationController к MPMoviePlayerViewController, когда переход уже выполняется. Подождите, пока viewDidAppear/viewDidDisappear узнает, что текущий переход завершен. '
Любые предложения и идеи приветствуются. Спасибо!!
Вы нашли способ решить эту проблему (кроме вызова метода некоторых переломов через секунду)? – stk