2

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

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

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

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

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

ответ

2

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

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

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

[UIResponder remoteControlReceivedWithEvent:(UIEvent*)event]; 

и когда вид уходит, незарегистрированный в viewWillDisappear:

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

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

+0

Ack. Вы разрабатываете для iPad ... нет iOS 4. –

+0

Да, но на самом деле, спасибо за то, что вы так много работали над этим. Я сохраню это, когда я буду готов к iOS 4 и надеюсь, что это поможет мне сделать это правильно. Я посмотрел приложение ABC, и они решили его с помощью пользовательского представления, так что мне тоже нужно идти с этим. Я действительно надеялся избежать этого, поскольку он просто добавляет больше времени и больше мест для того, чтобы все пошло не так. Как я могу дать вам кредит, хотя у нас нет окончательного решения? – Liam

8

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

+1

Спасибо за ответ, это почти что есть.Чтобы добраться до MPMoviePlayerController, мне пришлось сделать это следующим образом: [[NSNotificationCenter defaultCenter] removeObserver: self name: MPMoviePlayerPlaybackStateDidChangeNotification object: (MPMoviePlayerController *) [delegateMoviePlayer moviePlayer]]; Что я вижу, так это то, что когда я нажимаю на следующую и предыдущую кнопки, это состояние воспроизведения MPMoviePlaybackStateStopped. Это работает, и я получаю уведомления, мне нужно определить разницу между предыдущими и следующими нажатиями кнопок. Это было бы полным решением. – Liam

+0

Уточнение: я получаю состояние воспроизведения MPMoviePlaybackStateStopped, но это не кнопки, и я, похоже, до сих пор не могу сказать, какую кнопку нажали. – Liam

+0

Вы можете добавить слушателей для других уведомлений, определенных в http://developer.apple.com/iphone/library/documentation/mediaplayer/reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html и посмотреть, стреляет ли кто-нибудь из них, когда вы нажимаете те кнопок. –

 Смежные вопросы

  • Нет связанных вопросов^_^