【问题标题】:Notification when movie player control gets visible/hidden?电影播放器​​控件可见/隐藏时的通知?
【发布时间】:2012-07-18 15:10:48
【问题描述】:

我只想知道当播放控件可见或隐藏时是否可以收到通知?

例如,我想展示一个具有以下样式的视频:

self.moviePlayerController.controlStyle = MPMovieControlStyleEmbedded;

当视频开始播放时,播放控件会变得可见并自动消失。如果用户只是在视频上按 Tab,就会出现控件。

我需要一个通知,以便我可以调整我的视图(在 MPMoviePlayerController 视图下重新定位一些额外的按钮。 那可能吗?因为不幸的是,我在文档中一无所获。

【问题讨论】:

    标签: ios uikit mpmovieplayercontroller nsnotifications


    【解决方案1】:

    恐怕这些事件没有记录在案的通知。

    您可能很幸运,并通过嗅探所有已发布的通知来找到一些东西,如以下答案所示:

    Trapping and tracing all notifications

    How to receive NSNotifications from UIWebView embedded YouTube video playback


    但是,有一种方法可以简单地将您的控件与MPMoviePlayerControler 的控件链接起来。这种方式绝对是无证的,并且在尝试在 iTunes 上销售您的应用程序时确实存在被拒绝的巨大风险。

    首先,您需要在MPMoviePlayerController 中找到接口视图,直到今天,当使用嵌入式接口时,它由一个名为MPInlineVideoOverlay 的类表示。再一次,请注意他的这带来了很大的机会或破坏,因为 Apple 可能会决定在任何一天使用不同的命名。

    /**
     * This quirky hack tried to locate the interface view within the supposingly opaque MPMoviePlayerController
     * view hierachy.
     * @note This has a fat chance of breaking and/or getting rejected by Apple
     *
     * @return interface view reference or nil if none was found
     */
    - (UIView *)interfaceViewWithPlayer:(MPMoviePlayerController *)player
    {
        for (UIView *views in [player.view subviews])
        {
            for (UIView *subViews in [views subviews])
            {
                for (UIView *controlView in [subViews subviews])
                {
                    if ([controlView isKindOfClass:NSClassFromString(@"MPInlineVideoOverlay")])
                    {
                        return controlView;
                    }
                }
            }
        }
        return nil;
    }
    

    如果返回正确的视图,您只需使用 UIView addSubview: 将您自己的添加添加到界面上 一旦你这样做了,你的控件将成为播放器界面的一部分,与它一起显示和隐藏(也遵守所有动画等)。

    【讨论】:

    • 旁注解释了提到的拒绝风险:我在一个主要的应用程序版本中使用了这个确切的黑客,它通过了未被检测到....
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多