zoukankan      html  css  js  c++  java
  • 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;
        }
    }        

     
  • 相关阅读:
    解决DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE(或META-INF/DEPENDENCIES)
    为已经存在的本地项目添加git,以及从远程仓库拉取代码并切换远程分支
    android将应用中图片保存到系统相册并显示
    android选取系统相册图片后,识别图中二维码
    android 判断左右滑动,上下滑动的GestureDetector简单手势检测
    推荐个emacs的org-mode手册的地址
    JVM监控与调优
    Java 内存区域和GC机制
    贴个流媒体大牛的博客
    苹果cms测试
  • 原文地址:https://www.cnblogs.com/allanliu/p/5302872.html
Copyright © 2011-2022 走看看