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