Next/Previous buttons on iPhone MPMoviePlayerController

后端 未结 3 1609
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-31 13:46

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

How do I get notifications when they are clicked? is t

相关标签:
3条回答
  • 2020-12-31 14:16

    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];
    }
    0 讨论(0)
  • 2020-12-31 14:18

    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.

    0 讨论(0)
  • 2020-12-31 14:21

    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.

    0 讨论(0)
提交回复
热议问题