UIWebView 视频播放获取开始播放和结束播放通知


公司项目中,要求播放优酷视频,因为优酷官方视频iOS SDK 太大(100M 以上)导入后致使项目打包文件过大,并且播放界面没法自定义。因此采用了拼接视频播放 URL,调用 UIWebView 播放视频。ide

在UIWebView中点击播放视频,不能准确获取视频播放器开始显示和 结束显示的方法。查找了网上的解决方案,大可能是 使用监听通知UIMoviePlayerControllerDidEnterFullscreenNotificatio MPMoviePlayerControllerDidEnterFullscreenNotification, 而后在去控制屏幕的旋转。spa

可是这方案iOS8之后就已经失效了,目前没法使用了。code

 

要实现用户打开播放器和关闭播放起的事件。
网上找了解决方案决定采用客户端接收系统通知实现 这两个事件的获取视频

方法:使用系统通知
当点击视频加载出MPMoviewController的时候,至关于在Window上加了一层,会触发到下面两个通知。// 播放器即将播放通知server

 [[NSNotificationCenter defaultCenter] addObserver:self                selector:@selector(videoStarted:)                            name:UIWindowDidBecomeVisibleNotification
                          object:self.view.window];
// 播放器即将退出通知 [[NSNotificationCenter defaultCenter] addObserver:self                         selector:@selector(videoFinished:)                           name:UIWindowDidBecomeHiddenNotification                          object:self.view.window];

 



获取到这两个事件后,处理逻辑blog

- (void)videoStarted:(NSNotification *)notification {
    //NSLog(@"视频 开始 播放");
}

- (void)videoFinished:(NSNotification *)notification {
    //NSLog(@"视频 结束 播放");

    if ([self.loadingView isAnimating]) {
        [self.requestWebViewButton setHidden:NO];
        [self.loadingView stopAnimating];
        self.isFinishLoad = YES;
    }
}        
相关文章
相关标签/搜索