https://github.com/Bilibili/ijkplayer
集成环境macOS 10.13.3
集成方式 自己编译.so文件
步骤:
安装git 与yasm
brew install git
brew install yasm
windows 环境应该可以通过cygwin进行编译(官方说明)
on Cygwin (unmaintained)
install git, make, yasm
添加sdk 环境变量
export ANDROID_SDK=<your sdk path>
export ANDROID_NDK=<your ndk path>
注意 这里的ndk 版本不得超过14b,若使用的android ndk 是最新的16版本需要去android 官网下载一份14b以下的ndk 并将其放到环境变量中
按照官方教程
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
./init-android.sh
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all
等待编译完成 。
注意 在下载ffmpeg 时候可能会十分的慢 这时需要给git 设置一个 代理,这里有shadowsockets 的同学可以打开你们的客户端--高级设置 查看你们socket5 的本地监听ip地址与端口号
通过命令
git config --global http.proxy 'socks5://127.0.0.1: 你的端口号'
git config --global https.proxy 'socks5://127.0.0.1: 你的端口号'
来配置 对git的http 与https 的全局代理
这时速度就很快了
编译完成之后,找到 你的文件夹/.../ijkplayer 文件夹
后面那些都是cpu 的类型 我们只需要里面的so包 同时还需要 example中的控件。。。省得自己写了 只需要改下布局文件就可以使用了。
集成过程:
可以在修改之前先复制一份备份 要不然还要重新编译
1.打开example 项目中的build.gradle文件
将dependencies 中 compile的 project 全都删掉
我们只需要ijkplayer-java 这个项目作为依赖,但是不依赖本地的 我们可以使用远程仓库的依赖
- 将 example 项目中的build.gradle文件 中的
apply plugin: 'com.android.application'
修改为apply plugin: 'com.android.library'
我们将其当做一个model 引入项目
修改完的文件如下
3.修改完成后 我们将 ijkplayer-example 集成进我们的项目
点开
点击 + 号
选择 import gradle project
点击下一步
选择你的 ijkplayer-example项目文件夹
这时我们就集成进我们的项目了
4.创建jniLibs 文件夹,将编译生成的那些项目中 lib 文件夹下的 so 包都黏贴进我们的项目下的 jnilibs 文件夹中
注意 命名一定要 jniLibs 否则会报so 找不到的错误,也可以添加sourceset main 重新声明jnilibs.src的声明 不过还是建议使用默认的文件夹名字
-
根据需求修改源代码
由于我们只是集成一个播放视频的控件进入项目 所以示例工程中的 acticity啊 fragment 什么的都是不需要的 ,同时 AndroidManifest.xml 文件也需要修改。
然后就可以愉快的使用进行播放视频了