jiecaovideo开源项目笔记-JCVideoPlayer分析-全屏逻辑
来源:互联网 发布:网络教学有什么特点 编辑:程序博客网 时间:2024/06/04 18:00
先上代码还是在onClick方法中
if (i == R.id.fullscreen) { Log.i(TAG, "onClick fullscreen [" + this.hashCode() + "] "); if (currentState == CURRENT_STATE_AUTO_COMPLETE) return;//应该是播放完瞬间点? if (currentScreen == SCREEN_WINDOW_FULLSCREEN) { //quit fullscreen 退出全屏 backPress(); } else { Log.d(TAG, "toFullscreenActivity [" + this.hashCode() + "] "); onEvent(JCBuriedPoint.ON_ENTER_FULLSCREEN); startWindowFullscreen(); } }
主要也就看backPress和 startWindowFullscreen方法
startWindowFullscreen进入全屏。
ViewGroup vp = (ViewGroup) (JCUtils.scanForActivity(getContext())).findViewById(Window.ID_ANDROID_CONTENT);
这个是获取当前的activity的最根布局
跟着是这两行代码。有些同学就蒙B了
Constructor<JCVideoPlayer> constructor = (Constructor<JCVideoPlayer>) JCVideoPlayer.this.getClass().getConstructor(Context.class);
final JCVideoPlayer jcVideoPlayer = constructor.newInstance(getContext());
这两句话的含义其实就是获取当前JCVideoPlayer的子类,然后构造一个JCVideoPlayer的子类。然后接着这个实例,添加在vp中。这样就实现了全屏,之前的view都被当前的JCVideoPlayer子类覆盖掉。
JCVideoPlayerManager.setLastListener(this);JCVideoPlayerManager.setListener(jcVideoPlayer);上篇博客说了addTextureView方法会重新设置视频输出对象。当前JCVideoPlayer已经显示在界面中,但是屏幕输出还不是在现在new的jcVideoPlayer 中。简单设置下jcVideoPlayer.addTextureView,调用这个方法视频输出自然会显示在全屏界面。上面的listener的切换是为了把JCMediaManager中的加载(这个加载在切换全屏的时候完全正常运行)的进度以及各种状态回调到jcVideoPlayer 中。这样全屏切换完美实现
0 0
- jiecaovideo开源项目笔记-JCVideoPlayer分析-全屏逻辑
- jiecaovideo开源项目笔记-JCVideoPlayer分析-播放逻辑
- jiecaovideo开源项目笔记-JCVideoPlayer分析-小屏逻辑
- jiecaovideo开源项目笔记-JCVideoPlayer小修改
- jiecaovideo开源项目笔记-Demo部分
- jiecaovideo开源项目笔记-JCVideoPlayerStandard
- Jiecaovideo开源项目使用
- java笔记 项目分析
- 逻辑分析
- 分析逻辑
- 做个笔记(项目中通讯录联系逻辑)
- iOS支持全屏侧滑导航栏(完全自定义)开源项目
- 视频播放器 JCVideoPlayer
- 集成 JCVideoPlayer的过程
- JCVideoPlayer使用小结
- Flex4 web项目全屏
- 传奇源码分析-客户端(游戏逻辑处理源分析一)
- 传奇源码分析-客户端(游戏逻辑处理源分析二)
- 如何有效的清除Android中无用的资源(静态代码分析)
- JavaScriptCore实战练习精品文章
- 使用shell 脚本做简单的压力测试
- 禁用缓存案例
- iOS屏幕旋转的监测
- jiecaovideo开源项目笔记-JCVideoPlayer分析-全屏逻辑
- linphone呼叫流程分析
- mysql主从复制配置
- BZOJ1111——[POI2007]四进制的天平Wag
- mac启动apache 报错“httpd-mpm.conf:”
- IPU总结笔记
- UVALive 6807(最大生成树)
- 二部图最大匹配
- Spring框架中使用注解