Ubuntu16.04 编译ijkplayer so,并导入android,运行官方demo

来源:互联网 发布:最游记漫画软件 编辑:程序博客网 时间:2024/05/08 13:45

编译ijkplayer so,并导入android

注(本文是参照其他博客,自己动手,中间有很多坑,后面会贴出参考过的博客地址)

环境: win10(8g,64位),virtua box(5.1.14).exe(安装在c盘,c盘大小500g),Ubuntu16.04 .iso

Ubuntu16.04 .iso 安装参考:http://www.linuxidc.com/Linux/2015-08/121807.htm

注意点:我的配置参数

内存3g,
存储100g(50g也可以),(主要/home目录,要下载ijkplayer源码,sdk,ndk)
安装中下载更新勾上,
将100g分区(/boot 20g,/ 30g,/home 30g ,/swap 10g)

内存,和存储越大系统安装速度越快,出现的问题也少

安装成功后

开始编译过程

1.下载sdk和ndk
火狐游览器下载的文件在/home/下载中
sdk下载最新的就好
ndk只能用r10e.bin(撸主下的r13b,r12b都用不了)
下载好的文件sdk解压到/home目录下
下载好的r10e.bin的文件也放在/home下
下载成功后

2.安装r10e.bin(文件名)
打开终端:ctrl+alt+t
输入命令: ls (可以看到下载的r10e.bin)
再输入

sudo chmod u+x r10e.bin
按回车,提示输入密码,输入登录密码,回车;此行给文件执行权限
然后
sudo ./r10e.bin
就可以开始安装了

bin安装成功后
(安装有点慢)
3.配置sdk和ndk路径
在Home下,ctrl+h可以看到./bashrc文件,双击打开
配置sdk和ndk路径
lianwt——我的用户名在创建用户时的
验证路径是否正确—>进入终端–>cd /home/lianwt 能看到这两个文件夹就配置正确了

ANDROID_NDK=/home/lianwt/android-ndk-r10e
export ANDROID_NDK
PATH=PATH:{ANDROID_NDK}
ANDROID_SDK=/home/lianwt/android-sdk-linux
export ANDROID_SDK
PATH=PATH:{ANDROID_SDK}

4.开始编译阶段
参考资料:http://www.linuxdiyf.com/linux/22188.html

进入终端

1.安装git 命令:$ sudo apt-get install git

2.安装yasm 命令:$ sudo apt-get install yasm

开始编译
1.下载项目到本地
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.5.1

2.执行初始化操作
./init-android.sh

3.编译ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all –>可能出现export bad name错误(解决)–>

ubuntu 16.04 的 shell 默认是 dash,这里我们必须改为 bash,否则执行编译脚本时会有很多莫名其妙的问题:
sudo dpkg-reconfigure dash
它会问你是否使用 dash 作为系统缺省 shell,在这里当然是选 <否>/No*

4.开始编译so
cd ..
./compile-ijk.sh all

完成

编译成功后
如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件

运转

baidu了半天没能找到ubuntu和win10互传文件的方法,方法都试过了没用,自己又是小白没办法,用了邮箱

win10

转运到win10后,直接导入工程各种问题,解决一个又一个,大部分都是版本和环境问题的问题,有些下载非常慢

解决

去githup 下载ijkplayer android源码

将转运过来的源码里的ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64的五个文件夹,复制替换掉githup 下载ijkplayer android源码的相同目录下的文件夹,再导入到as(版本2.2.3)中,没毛病
解决

运行官方demo

recent->点击条目
官方demo

一句代码集成凤凰视频直播–Fragment–RecentMediaListFragment–onActivityCreated–public void onItemClick–
VideoActivity.intentTo(activity, “http://zv.3gv.ifeng.com/live/zhongwen800k.m3u8“, name)

recent->点击条目
凤凰视频直播

1 0