Eclipse编译ijkplayer

<

div id=”content” contentScore=”3957″>最近在做Android播放器相关工作,根据以前的项目改写了一个简单的播放器,不过仅支持armv7a,且不支持硬解,同步等的处理仅仅是根据ffmpeg的tutorial简单的处理了一下。

发现用跟多项目使用了ijkplayer,因此打算研究一下,ijkplayer使用Android Studio编译相当简单,但是对于只熟悉Eclipse的,想在Eclipse下配置编译的也是有人的,比如我自己,故在此记录一下问题。

一、ijkplayer下载地址

https://github.com/Bilibili/ijkplayer

二、编译支持不同CPU架构的so库

库的编译按ijkplayer提示译步骤即可成功,会生成如下库文件

三、工程转Eclipse

1、

(1)将ijkplayer-android/android/ijkplayer 这个目录整个拷贝一份

       

(2)裁剪

ijkplayer不同CPU架构的支持如下:armv5,arm64,x86和armv7a;

现只添加armv7a的支持,其他的与v7a相似。


2、各工程改为Eclipse版

以ijkplayer-armv7a为例,以下操作均在ijkplayer-armv7a目录下:

(1)改src目录为src_1;

(1)拷贝ijkplayer-armv7a/src_1/main/下所有内容 到 ijkplayer-armv7a下;

(2)删除src_1目录;

(3)删除src目录,将java目录更名为src

其他工程(ijkplayer-java, ijkplayer-sample,ijkplayer-exo)也同样操作。

3、导入各工程到Eclipse

4、编译armv7a和java的jar包,并在sample工程中引用

这个很简单,略过

5、编译ExoPlayer

(1)下载ExoPlayer

https://github.com/google/ExoPlayer

(2)解压到ijkplayer目录


(3)Eclipse导入ExoPlayerLib,编译

(4)编译ijkpalyer-exo

引用ExoPlayerLib及ijkplayer-java,设置为“Is Library”,ijkplayer-sample需去除ijkplayer-java的引用

(5)也可以去除ExoPlayer

根据ijkplayer的提示


ExoPlayer只是实验性的,因此暂不使用ExoPlayer,当然你也可以自己编译ExoPlayer。

修改sample工程去掉ExoPlayer的支持:

IjkVideoView.java中:

注释如下红色内容:

//import tv.danmaku.ijk.media.exo.IjkExoMediaPlayer;

case Settings.PV_PLAYER__IjkExoMediaPlayer: {
                Log.w(TAG, “remove exomediaplayer support”);
                //IjkExoMediaPlayer IjkExoMediaPlayer = new IjkExoMediaPlayer(mAppContext);
                //mediaPlayer = IjkExoMediaPlayer;

}

去除了ExoPlayer,ijkplayer-sample需引用ijkplayer-java

6、添加appcompat-v7

(1)

ijkplayer使用到AppCompatActivity,需使用较新的appcompat-v7

打开Eclipse的SDK Manager,更新Android Support Library


我更新到了23.1.

下载的内容会在/path/to/sdk/extras/android/support/


v7目录下有:


(2)编译

Eclipse导入工程,appcompat,并编译,默认设置了 “Is library”

sample工程设置引用此jar包

7、添加preference-v7

(1)

此时如果编译sample工程


此时会报错,


查看ijkplayer说明


需要添加preference-v7,发现第6步时,已经将它下载下来了


(2)

将此工程添加到Eclipse,并设置“Is Library”,编译,

提示错误:


这个问题,查了半天没找到原因,肯定是少了啥东西。无奈之下,想到下一个现成的jar包吧,

于是找到了 https://github.com/dandar3/android-support-v7-preference

查看它的project.properties文件发现,配置如下:


才发现少了啥,也不需要下jar包了,按照此配置之前的preference工程,

其中android-support-v7-appcompat之前就编译过了,其中也包括了v4,

android-support-v7-recyclerview在preference一个目录下,将其导入Eclipse并编译;

最后编译preference成功

8、

ijkplayer使用了otto,

参考此文章:http://www.linuxidc.com/Linux/2016-07/133744.htm

到otto官网http://square.github.io/otto/下载jar包,并拷贝到到sample工程的libs下

在Eclipse中,右键jar包,Build Path->Add to Build Path

9、编译sample工程

最终sample工程的设置



编译,成功生成apk

工程下载地址: http://pan.baidu.com/s/1eSK6E0U  提取密码: rdbh

<stro

15 Comments