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

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

Что бы я хотел знать, есть ли способ прослушивания / перехвата этого события с помощью кнопок fullscreen next и previous?

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

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

Буду признателен за любую помощь.

Ответы [ 3 ]

8 голосов
/ 02 августа 2010

Я не использовал 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 и ... ищите обновления для этих кнопок.

2 голосов
/ 05 августа 2010

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

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

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

[UIResponder remoteControlReceivedWithEvent:(UIEvent*)event];

и когда вид исчезает, отмените регистрацию в окнеWillDisappear:

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

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

0 голосов
/ 30 августа 2010

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

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

...