Как перехватить событие нажатия следующей кнопки MPMoviePlayer в полноэкранном режиме на iPad?

Когда MPMoviePlayerViewController в полноэкранном режиме на iPad, по умолчанию он имеет элементы управления, чтобы иметь на нем предыдущую и следующую кнопку. В моем проекте мне нужно захватить щелчок для этой кнопки наложения и обработать его соответствующим образом. Так как я не знаю, как вызвать список воспроизведения, пока нет следующего элемента, и нажатие на кнопку прерывает просмотр, как только я выхожу из полноэкранного режима. Почему-то он просто не знает, что делать, и я не получаю ошибок.

Я хотел бы знать, есть ли способ прослушать / поймать это событие из fullscreen следующая и предыдущая кнопки?

Я также попытался получить оверлей со своими собственными элементами управления, чтобы жить на MPMoviePlayer, MPMoviePlayerControllerи MPMoviePlayerViewController без успеха. Как только игрок входит fullscreen В режиме любое наложение, которое присутствовало, игнорируется и не переносится вместе с масштабированием экрана.

Есть ли надежный способ наложения в то время как в fullscreen Режим? Я посмотрел на образец от Apple, но это, кажется, не работает для меня, чтобы на самом деле что-то добавить к представлению в то время как в fullscreen Режим.

Любая помощь будет оценена.

3 ответа

Решение

Вот еще одна возможность, с которой я только что наткнулся. MPMoviePlayerController в полноэкранном режиме может отправлять события удаленного управления. Поймайте их (кстати, только для iOS 4), включив сообщения о событиях удаленного управления в вашем контроллере представления:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

а затем реализовать

[UIResponder remoteControlReceivedWithEvent:(UIEvent*)event];

и когда представление исчезнет, ​​отмените регистрацию в viewWillDisappear:

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];

Я не уверен, что это сработает, но стоит попробовать.

Я не использовал MPMoviePlayerViewController, но вот некоторые соображения, основанные на просмотре документации.

Похоже, что MPMoviePlayerController имеет некоторые уведомления, которые могут иметь отношение, хотя я не вижу конкретных ссылок на "следующие и предыдущие кнопки". Могут ли они быть кнопки поиска?

Зарегистрируйтесь для получения уведомления с

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];

И добавьте эту функцию к вашему объекту:

-(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification {
    MPMoviePlayerController *moviePlayer = notification.object;
    MPMoviePlaybackState playbackState = moviePlayer.playbackState;
    // ...
}

Я подозреваю, что вы обнаружите, что вы получаете MPMoviePlaybackStateSeekingForward и... ищете обновления для этих кнопок.

Сиамсу Кэмпбелл прав:) Используя его подход, я получил события событий управления воспроизведением. Смотрите мой вопрос и ответ.

Как узнать, что пользователи нажимают кнопки быстрой перемотки вперед и назад на элементах управления воспроизведением в iPhone?

Другие вопросы по тегам