瀏覽代碼

完善原生demo

杨充 4 年之前
父節點
當前提交
a8c815c7ec
共有 3 個文件被更改,包括 29 次插入14 次删除
  1. 6 7
      Demo/build.gradle
  2. 1 1
      VideoKernel/build.gradle
  3. 22 6
      read/04.视频播放器封装思路.md

+ 6 - 7
Demo/build.gradle

@@ -60,14 +60,13 @@ dependencies {
 
     //自己封装的库,都有对应的案例项目【欢迎star】:https://github.com/yangchong211
     implementation 'cn.yc:YCStateLib:1.1'                                  //状态管理
-//    implementation 'cn.yc:YCVideoPlayerLib:2.6.6'                            //播放器
-    implementation project(':VideoCache')
-    implementation project(':VideoPlayer')
-    implementation project(':VideoKernel')
+//    implementation project(':VideoCache')
+//    implementation project(':VideoPlayer')
+//    implementation project(':VideoKernel')
 
-//    implementation 'cn.yc:VideoPlayer:3.0.1'
-//    implementation 'cn.yc:VideoCache:3.0.0'
-//    implementation 'cn.yc:VideoKernel:3.0.0'
+    implementation 'cn.yc:VideoPlayer:3.0.1'
+    implementation 'cn.yc:VideoCache:3.0.0'
+    implementation 'cn.yc:VideoKernel:3.0.1'
     implementation 'cn.yc:YCStatusBarLib:1.4.0'
  //状态栏
 }

+ 1 - 1
VideoKernel/build.gradle

@@ -59,7 +59,7 @@ group = "cn.yc"
 //发布到JCenter上的项目名字,必须填写
 def libName = "YCVideoKernelLib"
 // 版本号,下次更新是只需要更改版本号即可
-version = "3.0.0"
+version = "3.0.1"
 /**  上面配置后上传至jcenter后的编译路径是这样的: compile 'cn.yc:YCVideoKernelLib:1.0.0'  **/
 
 //生成源文件

+ 22 - 6
read/04.视频播放器封装思路.md

@@ -1,16 +1,32 @@
-# 视频封装思路
+# 04.视频封装思路
 #### 目录介绍
+- 01.视频播放器的痛点
+- 02.业务需求的目标
+- 03.
 
 
 
+### 01.视频播放器的痛点
+- 播放器内核难以切换
+    - 不同的视频播放器内核,由于api不一样,所以难以切换操作。要是想兼容内核切换,就必须自己制定一个视频接口+实现类的播放器
+- 播放器内核和UI层耦合
+    - 也就是说视频player和ui操作柔和到了一起,尤其是两者之间的交互。比如播放中需要更新UI进度条,播放异常需要显示异常UI,都比较难处理播放器状态变化更新UI操作
+- UI难以自定义或者修改麻烦
+    - 比如常见的视频播放器,会把视频各种视图写到xml中,这种方式在后期代码会很大,而且改动一个小的布局,则会影响大。这样到后期往往只敢加代码,而不敢删除代码……
+    - 有时候难以适应新的场景,比如添加一个播放广告,老师开课,或者视频引导业务需求,则需要到播放器中写一堆业务代码。迭代到后期,违背了开闭原则,视频播放器需要做到和业务分离
+- 视频播放器结构不清晰
+    - 这个是指该视频播放器能否看了文档后快速上手,知道封装的大概流程。方便后期他人修改和维护,因此需要将视频播放器功能分离。比如切换内核+视频播放器(player+controller+view)
 
 
 
-
-
-
-
-
+### 02.业务需求的目标
+- 常见的业务需求
+    - 基础封装视频播放器player,可以在ExoPlayer、MediaPlayer,声网RTC视频播放器内核,原生MediaPlayer可以自由切换
+    - 对于视图状态切换和后期维护拓展,避免功能和业务出现耦合。比如需要支持播放器UI高度定制,而不是该lib库中UI代码
+    - 针对视频播放,音频播放,播放回放,以及视频直播的功能。使用简单,代码拓展性强,封装性好,主要是和业务彻底解耦,暴露接口监听给开发者处理业务具体逻辑
+- 音视频播放框架
+    - 视频播放等于MediaPlayer和SurfaceView,MediaPlayer主要用于播放音频,没有提供图像输出界面,所以我们需要借助其他的组件来显示MediaPlayer播放的图像输出,我们可以使用SurfaceView来显示
+    - 能否实践开发出一套音视频播放的通用架构,能支持音频播放场景,也能播放视频场景,还可以无缝切换。比如视频切换音频操作,增强库的功能性