android studio集成ijkplayer的示例代碼
介紹
ijkplayer是一款非?;鸬拈_源視頻播放器,android和IOS通用。關(guān)于怎么編譯怎么導(dǎo)入android Studio中自己的項目,其中坑很多,本篇記錄下自己的操作記錄。ijkplayer現(xiàn)在的版本是0.8.3,當(dāng)然是使用最新的版本集成了。
編譯ijkplayer
關(guān)于編譯,我是在Ubuntu上編譯后拷貝到win10中的,ijkplayer源碼需要gcc編譯,windows各種不好用,如果使用cynwin還不如在ubuntu下編譯。
編譯的過程是下載sdk,ndk。設(shè)置環(huán)境變量后按照github上的說明編譯即可.
android studio集成ijkplayer
1.導(dǎo)入到你的項目中
android studio打開你的項目,F(xiàn)ile->Import Module...選擇ijkplayer的anroid/ijkplayer目錄,ijk-example依賴所有庫,所以導(dǎo)入后所有項目都會導(dǎo)入到你的項目中。
2.將android/ijkplayer目錄下的tools文件夾也拷貝到自己項目的根目錄下。
3. 在ijkplayer-java\src\main\目錄下新建一個名為jniLibs的文件夾,將各個ijkplayer-xxx目錄中的\src\main\libs目錄下的文件夾拷貝到j(luò)niLibs文件夾中,如:ijkplayer--armv7a的該目錄下包含armeabi-v7a這個文件夾,其中包含了該平臺對應(yīng)的.so文件,如果希望包含所有平臺的,就將所有ijkplayer-xxx下的全部拷過來,如果只希望某幾個平臺的,就只拷貝它們的。
4.將ijkplayer-xxx的目錄全部從項目中刪除掉,只保留ijkplayer-example、ijkplayer-java、ijkplayer-exo以及tools文件夾,其中ijkplayer-example依賴于后面幾個。android studio刪除項目需如下圖所示:

并將相對應(yīng)的文件夾刪除即可。
5.將ijkplayer-example修改為Module的形式,因為ijkplayer-example本身是一個application工程,默認不生成aar文件,且里面的資源互相依賴,難以像舊版本通過復(fù)制所需的幾個java文件到自己工程中的方式來使用,所以不如將整個ijkplayer-example轉(zhuǎn)換為我們工程的一個Module。具體方法是:
先修改ijkplayer-example目錄下的build.gradle文件,如下:
apply plugin: 'com.android.library'
android {
// http://tools.android.com/tech-docs/new-build-system/tips
//noinspection GroovyAssignabilityCheck
compileSdkVersion rootProject.ext.compileSdkVersion
//noinspection GroovyAssignabilityCheck
buildToolsVersion rootProject.ext.buildToolsVersion
lintOptions {
abortOnError false
}
defaultConfig {
minSdkVersion 9
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildToolsVersion '25.0.0'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:preference-v7:23.0.1'
compile 'com.android.support:support-annotations:23.0.1'
compile 'com.squareup:otto:1.3.8'
compile project(':ijkplayer-java')
compile project(':ijkplayer-exo')
}
注意:
- apply plugin: 'com.android.application'要改為apply plugin: 'com.android.library'
- applicationId "tv.danmaku.ijk.media.example"這句要去掉
- compile 'com.android.support:appcompat-v7:25.0.0'
- compile 'com.android.support:preference-v7:23.0.1'
- compile 'com.android.support:support-annotations:23.0.1'
- compile 'com.squareup:otto:1.3.8'
這幾個修改為自己安裝的版本。
6.在ijkplayer-example根目錄下增加一個gradle.properties文件,內(nèi)容如下:
POM_NAME=ijkplayer-example POM_ARTIFACT_ID=ijkplayer-example POM_PACKAGING=aar
7.在自己的項目中添加依賴項,如下圖所示:

完成上述操作,點擊async gradle即可。
其他錯誤:
如果出現(xiàn)
Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.
如上類似錯誤,那是幾個項目的sdk版本不同引起的,四個項目包含你自己的項目的compileSdkVersion 、
buildToolsVersion、targetSdkVersion和compile 'com.android.support:appcompat-v7:25.0.0'
幾個版本必須要統(tǒng)一,如果不統(tǒng)一會出現(xiàn)各種問題。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android判斷App前臺運行還是后臺運行(運行狀態(tài))
這篇文章主要介紹了Android判斷App前臺運行還是后臺運行的相關(guān)資料,需要的朋友可以參考下2016-04-04
Android Studio 全屏沉浸式透明狀態(tài)欄效果的實現(xiàn)
這篇文章主要介紹了Android Studio 全屏沉浸式透明狀態(tài)欄效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Kotlin中空判斷與問號和感嘆號標(biāo)識符使用方法
最近使用kotlin重構(gòu)項目,遇到了一個小問題,在Java中,可能會遇到判斷某個對象是否為空,為空執(zhí)行一段邏輯,不為空執(zhí)行另外一段邏輯,下面這篇文章主要給大家介紹了關(guān)于Kotlin中空判斷與問號和感嘆號標(biāo)識符處理操作的相關(guān)資料,需要的朋友可以參考下2022-12-12
Android自定義View的三個構(gòu)造函數(shù)
這篇文章主要介紹了Android自定義View的三個構(gòu)造函數(shù),需要的朋友可以參考下2017-06-06

