歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Eclipse編譯ijkplayer

最近在做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

Copyright © Linux教程網 All Rights Reserved