Next/Previous buttons on iPhone MPMoviePlayerController

别说谁变了你拦得住时间么 提交于 2019-12-18 13:16:49

问题


When using the MPMoviePlayerController, the play button is surrounded with "Next" and "Previous" buttons.

How do I get notifications when they are clicked? is there a way to feed MPMoviePlayerController with a list (array) of content?


回答1:


Nathan is correct about needing to implement your own UI for the player if you want button notifications. You can get notifications from the player about playback state though.

from the AddMusic example, where self is the controller or model containing the instance of 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];
}



回答2:


No notifications are generated when the user presses the next/previous buttons (you should file a bug about that), so the only way to solve this without any unapproved view-crawling is to implement your own video overlay view:

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

Not ideal, but the standard controls are quite easy to re-implement.




回答3:


I don't think you have much control over the MPMoviePlayerController. It is a standard component that can basically start and stop playing a movie and nothing else.



来源:https://stackoverflow.com/questions/1134578/next-previous-buttons-on-iphone-mpmovieplayercontroller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!