WKWebView媒体播放器全屏检测

时间:2014-12-03 11:01:15

标签: ios ios8 wkwebview

在iOS 8之前,只要媒体播放器从UIWebView进入全屏,就会发送UIMoviePlayerControllerDidEnterFullscreenNotification通知。在iOS 8中,这种情况不会发生,有些人建议您收听AVPlayerItemBecameCurrentNotification通知。这似乎不是从WKWebView发送的。收听UIWindowDidBecomeVisibleNotification通知无效,因为已针对所有添加的窗口(包括广告网络等内容)触发了

最重要的是,我整晚都在努力工作,我似乎无法弄清楚如何使用WKWebView全屏打开视频。任何帮助将不胜感激。

编辑:为了确认,我创建了一个空白项目。添加了一个UIWebView和AVPlayerItemBecameCurrentNotification监听器,当我播放视频时它被触发并进入全屏状态。我将UIWebView切换到WKWebView,并且不再触发该通知。

2 个答案:

答案 0 :(得分:4)

此解决方法似乎适用于iOS8& iPhone 6

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    ...

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowBecameHidden:) name:UIWindowDidBecomeHiddenNotification object:nil];

    return TRUE;
}

- (void)windowBecameHidden:(NSNotification *)notification {

    UIWindow *window = notification.object;

    if (window != self.window) {    // Not my own window: assuming the video window was hidden, maybe add some more checks here.

            // Add code here
    }
}

答案 1 :(得分:0)

我只需要做同样的事情。我用这个答案https://stackoverflow.com/a/7955014/1271424听了所有通知,发现:除了有关创建新窗口的通知(_UIWindowContentWillRotateNotification)和MPRemote(MPRemoteCommandTargetsDidChangeNotification)之外,根本没有关于全屏模式的通知。

在iPad上测试,8.1.1