У меня возникла проблема, когда при загрузке вступительного фильма при запуске приложения IOS игра вылетала с ошибкой OpenGL 0x0505 в - [ES1Renderer resizeFromLayer:].
Мои спецификации фильма:
Размеры: 480 x 320 Кодеки: H.264, AAC Продолжительность: 00:15 Общая скорость передачи данных: 984 Размер: 1,9 МБ
Я запускаю фильм при запуске applicationDidFinish и запускаю CCDirector и инициализацию EAGLView/ создание в отдельном методе, который вызывается после завершения воспроизведения фильма.
Это работает на симуляторе, а также на Iphone 4, 3GS, Ipod 4th Gen, но на Ipod 2nd gen (Версия 4.1) происходит сбой.
У меня есть свой собственный класс, производный от MPMoviePlayerViewController, и мой собственный метод startMovie, который делает это:
- (void)startMovie
{
MPMoviePlayerController* moviePlayerController = [self moviePlayer];
moviePlayerController.controlStyle = MPMovieControlStyleNone;
moviePlayerController.useApplicationAudioSession = YES;
moviePlayerController.fullscreen = YES;
moviePlayerController.scalingMode = MPMovieScalingModeAspectFill;
// Only play video for iOS above 3.2
if(OS_Version > 3.21)
{
[moviePlayerController setMovieControlMode:MPMovieControlModeHidden];
[moviePlayerController prepareToPlay];
[moviePlayerController play];
}
else
{
// Use the new 3.2 style API
if([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)])
moviePlayerController.shouldAutoplay = YES;
else // Use the old 2.0 style API
{
moviePlayerController.movieControlMode = MPMovieControlModeHidden;
[moviePlayerController play];
}
}
}
При запуске фильма я делаю так:
self.moviePlayerViewController = [[[PFMPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:filePath]] autorelease];
[moviePlayerViewController startMovie];
Я полагаю, что у меня недостаточно памяти, так как ошибка OpenGL 0x0505 - это проблема нехватки памяти, но я не понимаю, почему.Сама игра выделяла более 2 МБ после нажатия кнопки воспроизведения, поэтому я думаю, что она может справиться с распределением фильма.
Есть ли что-то явно неправильное, что я могу сделать, чтобы OpenGL выдавал ошибку, подобную этой?
Спасибо,