代码之家  ›  专栏  ›  技术社区  ›  Liam

如何在iPad全屏模式下捕捉MPMoviePlayer下一步按钮点击事件?

  •  2
  • Liam  · 技术社区  · 14 年前

    MPMoviePlayerViewController 在iPad上是全屏模式,它的默认控件在覆盖层上有一个“上一步”和“下一步”按钮。在我的项目中,我需要捕捉该覆盖按钮的点击,并相应地处理它。因为我不知道如何调用一个播放列表,现在还没有下一个项目,一旦我退出全屏模式,点击按钮就会中断视图。不知何故,它只是不知道该做什么,我没有得到错误。

    我想知道的是,是否有一种方法可以从 fullscreen 下一个和上一个按钮?

    MPMoviePlayer , MPMoviePlayerController MPMoviePlayerViewController 没有成功。一旦玩家进入 全屏

    有没有一个可靠的方法,有一个覆盖,而在 模式?我看过苹果的样本,但这似乎不适用于我实际添加任何东西到视图中,而在 模式。

    3 回复  |  直到 9 年前
        1
  •  2
  •   Seamus Campbell    14 年前

    这是我偶然发现的另一种可能性。MPMoviePlayerController在全屏模式下可能正在发送远程控制事件。通过在视图控制器中启用远程控制事件消息来捕获这些(顺便说一下,仅限iOS 4):

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
    

    然后实施

    [UIResponder remoteControlReceivedWithEvent:(UIEvent*)event];
    

    当视图消失时,在视图中注销将消失:

    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
    

    我不确定这是否有效,但值得一试。

        2
  •  8
  •   Seamus Campbell    14 年前

    看起来MPMoviePlayerController有一些可能相关的通知,尽管我没有看到“下一个和上一个按钮”的具体引用。它们可能是搜索按钮吗?

    注册通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
    

    并将此函数添加到对象:

    -(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification {
        MPMoviePlayerController *moviePlayer = notification.object;
        MPMoviePlaybackState playbackState = moviePlayer.playbackState;
        // ...
    }
    

    我怀疑你会发现你得到的是MPMoviePlaybackStateSeekingForward和…SeekingBackstate这些按钮的更新。