UIWebView 视频播放获取开始播放和结束播放通知
Posted 奋进的闹钟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIWebView 视频播放获取开始播放和结束播放通知相关的知识,希望对你有一定的参考价值。
公司项目中,要求播放优酷视频,由于优酷官方视频ios SDK 太大(100M 以上)导入后导致项目打包文件过大,而且播放界面无法自定义。所以采用了拼接视频播放 URL,调用 UIWebView 播放视频。
在UIWebView中点击播放视频,不能准确获取视频播放器开始显示和 结束显示的方法。查找了网上的解决方案,大多是 使用监听通知UIMoviePlayerControllerDidEnterFullscreenNotificatio MPMoviePlayerControllerDidEnterFullscreenNotification, 然后在去控制屏幕的旋转。
但是这方案iOS8以后就已经失效了,目前无法使用了。
要实现用户打开播放器和关闭播放起的事件。
网上找了解决方案决定采用客户端接收系统通知实现 这两个事件的获取
方法:使用系统通知
当点击视频加载出MPMoviewController的时候,相当于在Window上加了一层,会触发到下面两个通知。// 播放器即将播放通知
[[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];
获取到这两个事件后,处理逻辑
- (void)videoStarted:(NSNotification *)notification { //NSLog(@"视频 开始 播放"); } - (void)videoFinished:(NSNotification *)notification { //NSLog(@"视频 结束 播放"); if ([self.loadingView isAnimating]) { [self.requestWebViewButton setHidden:NO]; [self.loadingView stopAnimating]; self.isFinishLoad = YES; } }
以上是关于UIWebView 视频播放获取开始播放和结束播放通知的主要内容,如果未能解决你的问题,请参考以下文章
JS判断视频Video的播放暂停结束完成及获取长度事件监听处理
JS判断视频Video的播放暂停结束完成及获取长度事件监听处理
那个 UIWebView 播放器是 MPMoviePlayerController 实例,以及如何获取对该实例的引用?
如何从 UIWebView 嵌入式 YouTube 视频播放接收 NSNotifications
如何在 UIWebview 内的播放器中获取 MPMoviePlayerPlaybackStateDidChangeNotification?