iPhone MPMoviePlayerController 上的下一个/上一个按钮

Posted

技术标签:

【中文标题】iPhone MPMoviePlayerController 上的下一个/上一个按钮【英文标题】:Next/Previous buttons on iPhone MPMoviePlayerController 【发布时间】:2009-07-15 23:04:13 【问题描述】:

当使用 MPMoviePlayerController 时,播放按钮被“Next”和“Previous”按钮包围。

如何在点击通知时收到通知? 有没有办法为 MPMoviePlayerController 提供内容列表(数组)?

【问题讨论】:

我找到了方法,看我的问答。 ***.com/questions/3593683/… 【参考方案1】:

如果您需要按钮通知,Nathan 关于需要为播放器实现自己的 UI 是正确的。不过,您可以从播放器获取有关播放状态的通知。

来自 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's 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];

不理想,但标准控件很容易重新实现。

【讨论】:

此代码不会删除现有的覆盖层。您的意思是在它们上添加一个清除按钮吗? @yn2:我已经更新了我的答案,以便隐藏默认的叠加 UI。【参考方案3】:

我认为您对MPMoviePlayerController 没有太多控制权。它是一个标准组件,基本上可以开始和停止播放电影,仅此而已。

【讨论】:

我猜你是对的。然而,为什么这些控件仍然存在?在 youtube 应用程序上 - 他们确实移动到下一个/上一个视频。 在 iPhone 上,他们转到当前电影的开头或结尾。它们不是下一个/上一个按钮。 这是不正确的。当您实现 am MPMoviePlayerController - 他们只是以与“停止”相同的方式退出播放器。

以上是关于iPhone MPMoviePlayerController 上的下一个/上一个按钮的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机型号对应表

在 iphone 5 和 iphone 6 中动态设置字体大小

Surface Pro4链接不上iphone手机的热点

iphone13和12外观的区别 iphone13和iphone12对比哪个好

为 iPhone 和 iPhone 4 开发之间有啥变化?

iPhone 5 与 iPhone 4 的图像命名