Кнопки Next/Previous на iPhone MPMoviePlayerController

При использовании MPMoviePlayerController кнопка воспроизведения окружена кнопками "Далее" и "Предыдущая".

Как получать уведомления при нажатии? есть ли способ передать MPMoviePlayerController список (массив) контента?

Ответ 1

Натан правильно говорит о необходимости реализовать собственный пользовательский интерфейс для игрока, если вы хотите уведомления о кнопках. Вы можете получать уведомления от игрока о состоянии воспроизведения.

из примера AddMusic, где self - это контроллер или модель, содержащая экземпляр MPMusicPlayerController:

- (void) registerForMediaPlayerNotifications {

    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

    [notificationCenter addObserver: self
                           selector: @selector (handle_NowPlayingItemChanged:)
                               name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
                             object: musicPlayer];

    [notificationCenter addObserver: self
                           selector: @selector (handle_PlaybackStateChanged:)
                               name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
                             object: musicPlayer];

    /*
     // This sample doesn't use libray change notifications; this code is here to show how
     //     it done if you need it.
     [notificationCenter addObserver: self
     selector: @selector (handle_iPodLibraryChanged:)
     name: MPMediaLibraryDidChangeNotification
     object: musicPlayer];

     [[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications];
     */

    [musicPlayer beginGeneratingPlaybackNotifications];
}

Ответ 2

Никаких уведомлений не генерируется, когда пользователь нажимает на следующие/предыдущие кнопки (вы должны сообщить об ошибке), поэтому единственный способ решить эту проблему без какого-либо несанкционированного обхода просмотра - реализовать собственный просмотр видеоизображения:

MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc]
    initWithContentURL:someUrl];
moviePlayer.movieControlMode = MPMovieControlModeHidden;
[moviePlayer play];

NSArray* windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1) {
  UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
  [moviePlayerWindow addSubview:yourCustomOverlayView];
}

Не идеален, но стандартные элементы управления довольно легко реинсталлировать.

Ответ 3

Я не думаю, что у вас есть большой контроль над MPMoviePlayerController. Это стандартный компонент, который может в принципе запускать и останавливать воспроизведение фильма и ничего больше.