androidstudio集成ijkplayer教程
介绍
ijkplayer是一款非常火的开源视频播放器,android和IOS通用。关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录。ijkplayer现在的版本是0.8.3,当然是使用最新的版本集成了。
编译ijkplayer
关于编译,我是在Ubuntu上编译后拷贝到win10中的,ijkplayer源码需要gcc编译,windows各种不好用,如果使用cynwin还不如在ubuntu下编译。
编译的过程是下载sdk,ndk。设置环境变量后按照github上的说明编译即可,具体可参考 这篇文章 .
android studio集成ijkplayer
1.导入到你的项目中
android studio打开你的项目,File->Import Module...选择ijkplayer的anroid/ijkplayer目录,ijk-example依赖所有库,所以导入后所有项目都会导入到你的项目中。
2.将android/ijkplayer目录下的tools文件夹也拷贝到自己项目的根目录下。
3. 在ijkplayer-java\src\main\目录下新建一个名为jniLibs的文件夹,将各个ijkplayer-xxx目录中的\src\main\libs目录下的文件夹拷贝到jniLibs文件夹中,如:ijkplayer--armv7a的该目录下包含armeabi-v7a这个文件夹,其中包含了该平台对应的.so文件,如果希望包含所有平台的,就将所有ijkplayer-xxx下的全部拷过来,如果只希望某几个平台的,就只拷贝它们的。
4.将ijkplayer-xxx的目录全部从项目中删除掉,只保留ijkplayer-example、ijkplayer-java、ijkplayer-exo以及tools文件夹,其中ijkplayer-example依赖于后面几个。android studio删除项目需如下图所示:

并将相对应的文件夹删除即可。
5.将ijkplayer-example修改为Module的形式,因为ijkplayer-example本身是一个application工程,默认不生成aar文件,且里面的资源互相依赖,难以像旧版本通过复制所需的几个java文件到自己工程中的方式来使用,所以不如将整个ijkplayer-example转换为我们工程的一个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文件,内容如下:
POM_NAME=ijkplayer-example
POM_ARTIFACT_ID=ijkplayer-example
POM_PACKAGING=aar
7.在自己的项目中添加依赖项,如下图所示:

完成上述操作,点击async gradle即可。
其他错误:
如果出现
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'
几个版本必须要统一,如果不统一会出现各种问题。
http://www.qingpingshan.com/rjbc/az/334018.html
http://makaidong.com/XYQ-208910/34380_157556.html
http://www.th7.cn/Program/Android/201502/385729.shtml
androidstudio集成ijkplayer教程的更多相关文章
- iOS中集成ijkplayer视频直播框架
ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- iOS集成ijkplayer视频直播框架,遇到的bug和坑...
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 32.0px "Helvetica Neue"; color: #555555 } p. ...
- 集成IJKplayer视频直播框架
ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...
- iOS:集成ijkplayer视频直播
介绍: ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集 ...
- iOS开发之集成ijkplayer视频直播
ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...
- Teamcity+SVN+VisualStudio在持续集成简明教程
Teamcity+SVN+VisualStudio持续集成 简明教程 一.写在最前: 1. 各组件版本号例如以下: Teamcity(简称tc)版本号:8.1.4 SVN版本号:Tortoi ...
- android studio集成ijkplayer
介绍 ijkplayer是一款非常火的开源视频播放器,android和IOS通用.关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录.ijkplayer ...
- Eclipse集成ijkplayer并实现本地和网络视频播放等
概述 Eclipse 集成ijkplayer demo,播放本地视频.和rtmp流. 详细 代码下载:http://www.demodashi.com/demo/10630.html 原文地址:Ecl ...
随机推荐
- POI合并单元边框问题解决方法
http://blog.csdn.net/hardworking0323/article/details/51105430
- Cannot find module 'crc'
这个时候你只需要打开你nodejs安装的目录,在其中执行 npm install crc(这里查什么模块(module)就安装什么模块).
- Laravel5.1学习笔记8 Blade模板
简介 模板继承 定义一个页面布局模板 扩展一个页面布局模板 展示数据 控制语法的结构 Service Injection 扩展 Blade 简介 Blade 是 Laravel 提供的一个既简单又 ...
- 复习HTML+CSS(8)
n 普通框架 框架技术:将一个浏览器划分成若干个小窗口,每个小窗口显示一个独立的网页. 框架集合框架页 u 框架集<frameset>:主要用来划分窗口的. u 框架页<fra ...
- layui 下拉框取值
layui.use('form', function () { var form = layui.form; form.on('select(Status)', function (data) { c ...
- APICloud上啦加载下拉刷新模块
apicloud有自带的上啦加载下拉刷新,当让也可以用第三方或者在模块库里面找一个使用 一.下拉刷新,一下代码写在 apiready = function (){} 里面 apiready = fun ...
- BZOJ 4999: This Problem Is Too Simple! DFS序+LCA+树状数组+离线
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) , ...
- Python基础(二)数据类型
(一)数字 Python3中的数字类型分为3种,分别是整型,浮点型以及复数. Python2种的数字类型分为4种,分别是整型,长整型,浮点型以及复数. 其中长整型时Python2为应对位数较大的而设置 ...
- Parsing error: The keyword 'export' is reserved && error Parsing error: Unexpected token <
如果你也在使用eslint,也报了如上错误,可以尝试: $ npm install babel-eslint --save-dev 然后,加上: rules: { "parser" ...
- 51nod1134 最长递增子序列【动态规划】
给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10. Input 第1行:1个数N ...