2009-07-15 4 views
10

При использовании MPMoviePlayerController кнопка воспроизведения окружена кнопками «Далее» и «Предыдущая».Кнопки Next/Previous на iPhone MPMoviePlayerController

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

+0

Я нашел способ, см мой вопрос и ответ на него. http://stackoverflow.com/questions/3593683/how-can-i-know-users-click-fast-forward-and-fast-rewind-buttons-on-the-playback-c/3598383#3598383 – alones

ответ

6

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

из примера AddMusic, где самость контроллер или модель, содержащая экземпляр 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's done if you need it. 
    [notificationCenter addObserver: self 
    selector: @selector (handle_iPodLibraryChanged:) 
    name: MPMediaLibraryDidChangeNotification 
    object: musicPlayer]; 

    [[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications]; 
    */ 

    [musicPlayer beginGeneratingPlaybackNotifications]; 
}
0

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

+0

Я предполагаю Ты прав. И все же, почему эти элементы управления все равно существуют? В приложении youTube они переходят к следующему/предыдущему видео. –

+0

На iPhone они идут в начало или конец текущего фильма. Они не являются кнопками next/prev. –

+0

Это неверно. Когда вы реализуете MPMoviePlayerController - они просто выходят из плеера таким же образом, что и «стоп». –

4

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

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]; 
} 

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

+0

Этот код не удаляет существующий слой наложения. Вы имели в виду добавить на них четкую кнопку? –

+0

@ yn2: Я обновил свой ответ, так что пользовательский интерфейс наложения по умолчанию скрыт. –

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