Я не знаю, применимо ли мое решение к вашей проблеме, но оно работает для моей установки, т.е. ipod 4-го поколения под управлением iOS 5.1.
Мои приложения вообще не отображают строку состояния, и вВ файле info.plist соответствующая запись «Строка состояния изначально скрыта» установлена в YES.
Я также напрямую добавляю представление MPMoviePlayerController в его родительское представление.Вот код для настройки проигрывателя фильмов:
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:theurl];
[moviePlayer.view setFrame:frame]; // This is set to (0, 0, 320, 480)
[moviePlayer prepareToPlay];
[moviePlayer setShouldAutoplay:YES];
moviePlayer.fullscreen = TRUE;
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[self.view addSubview:moviePlayer.view];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
MoviePlayer является переменной класса.
Когда проигрыватель заканчивает воспроизведение или когда зритель нажимает кнопку «Готово» на проигрывателе moviePlayerВ контроллере вызывается метод playbackFinished:
:
- (void)playBackFinished:(NSNotification *)notif{
moviePlayer.controlStyle = MPMovieControlStyleNone;
[moviePlayer stop];
[moviePlayer.view removeFromSuperview];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
[moviePlayer release];
moviePlayer = nil;
}
, в котором стиль элемента управления moviePlayer установлен на MPMovieControlStyleNone
, чтобы запретить какие-либо элементы управления, но, по сути, строка состояния отображается, когда moviePlayerудалено из родительского представления.