侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论

ijkPlayer SDK 源码下载说明与编译

Z同学
2022-01-26 / 0 评论 / 1 点赞 / 472 阅读 / 1,995 字
温馨提示:
本文最后更新于 2022-01-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

主要介绍我们如何通过git下载ijkPlayer SDK的源码。

当我们代码配置下载完毕后,我们可以学习如何自己通过源码编译aar文件,编译so文件等。

循序渐进的了解ijkPlayer吧

1. 获取ijkPlayer源码

在gitHub上其实有详细说明,我这边再结合自己的使用情况,进行一个说明。

采用下面的方式下载的前提条件是你本地的Git工具已经配置相关密钥了。可以从GitHub上拉取代码和推送代码了。

1.1 git命令模式

Github上 列出的就是通过git 命令行的形式下载源码

第一步,获取完整的ijkplayer 源码: git clone https://github.com/Bilibili/ijkplayer.git

通过这一步我们下载的将会是ios和Android两个的源码都下载了。目录结构就和我们在GitHub上看到的是一样的。

image-20220126151234504

然后,我们需要切换分支。我们默认下载的就是master分支的代码。但是并不是稳定版本,

ijkPlayer 在发布的每个版本之后,都会添加一个标签。我们通过git命令切换当前仓库到指定标签。

第二步,切换到指定的标签分支:git checkout -B latest k0.8.8

例如上面的切换到k0.8.8分支,因为当前最新版本是k0.8.8

这个时候,我们本地的代码就是某个稳定分支的版本代码了。我们可以根据自己的实际需求在该版本中进行重新构造jar和so文件。

那么ijkPlayer 有多个标签(Tags)呢?怎么查询呢?

很简单,我们在GitHub上可以看到所有的标签版本

image-20220126151722807

当我们下载完毕代码了后,我们就可以任意发挥了。包括修改源码重新打包等等。

1.2 使用TortoiseGit 等工具下载源码。

我们如果是使用GUI工具界面,进行下载的话。仍然是上面的链接

image-20220126152225456

执行仓库克隆操作,将代码下载完毕。然后通过右键菜单,选择 : 切换/检出 功能

image-20220126152658685

然后选择标签(Tags),选择要切换到的指定标签。

下面的选项会自动基于该标签创建一个本地分支。我们点击确认就可以了。

就可以将代码切换到指定的标签分支了。

获取源码的方式就到这里了。

2. 获取FFmpeg 依赖库

ijkPlayer SDK 针对视频播放的编解码是通过FFmpeg 库来实现的。我们在上面的步骤中只是获取的ijkPlayer的源码,而FFmpeg相关库没有下载。我们只有下载了该库才能执行后面的so等文件的编译。

2.1 windows 平台下

我们在下载的源码中,启动init-android.sh 文件就可以自动进行下载了。

image-20220126153401079

方法很简单: 双击使用Git Bash 执行该文件,就会自动开始下载相关FFmpeg的库了。

我们通过文档工具打开这.sh文件也能直观的看到。这个就是一个脚本工具,封装了ffmpeg的下载

image-20220126153843298

执行下载完毕后,Git Bash会自动关闭。数据存储路径在android/contrib文件夹下面。

image-20220126154022532

如果没有这几个库,我们就无法进行编译相关平台的so文件了。这个步骤很重要。

2.2 linux 平台下

如果是linux平台下,直接执行:./init-android.sh 这个文件进行下载就可以了。

下载完毕后,一样是在contrib文件夹下多出部分的FFmpeg的各种cpu型号库。

3. 编译ijkPlayer SDK

我们如果没有配置要进行修改,可以直接执行以下命令

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

最终是通过compile-ijk.sh 进行脚本编译,实现so等各种文件的编译了。(需要前提条件是本地有ndk编译环境。并且配置在了环境变量中,否则脚本找不到ndk无法进行编译)

3.1 Android Studio进行编译

也可以直接使用AS进行编译。

第一步:将 android/ijkplayer 通过 import 导入创建一个Android Studio项目

image-20220126163718254

请注意你的Project的build.gradle 文件中是否有下面的配置

     ext {
       compileSdkVersion = 23       // 这个是你本地的Android SDK 的版本,你可以自定义
       buildToolsVersion = "23.0.0" // 这个是本地的 Android Tools工具版本,你也可以自定义
       targetSdkVersion = 23        // 定义最佳编译版本,这个也是基于我们本地的Android SDK版本,自定义
     }

如果不配置就会出现下面的错误了。

image-20220126163347050

第二步: 我们需要安装LLDB,NDK,CMake 等插件。

第四步: 执行gradle 编译就可以了。

我们就可以根据需要编译你想编译的版本了。

本篇内容就到这里了。请期待我之后的关于ijkPlayer SDK的使用介绍吧。

到这里,我们编译的其实和ijkPlayer 官方提供的maven仓库没有区别。只是实现了一下本地自己打包而已。

1

评论区