android studio集成ijkplayer的示例代码

发布时间 - 2026-01-11 03:29:32    点击率:

介绍

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')

 

}

注意:

  1. apply plugin: 'com.android.application'要改为apply plugin: 'com.android.library'
  2. applicationId "tv.danmaku.ijk.media.example"这句要去掉
  3. compile 'com.android.support:appcompat-v7:25.0.0'
    1. compile 'com.android.support:preference-v7:23.0.1'
    2. compile 'com.android.support:support-annotations:23.0.1'
    3. 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'
几个版本必须要统一,如果不统一会出现各种问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # studio集成ijkplayer  # ijkplayer  # android集成ijkplayer  # Android基于IJKPlayer视频播放器简单封装设计  # 基于Android引入IjkPlayer无法播放mkv格式视频的解决方法  # 在ubuntu下编译ijkplayer-android的方法  # Android ijkplayer的使用方法解析  # android 使用 IJKPlayer 播放视频流的实现代码  # 几个  # 自己的  # 目录下  # 所示  # 如下图  # 拷贝到  # 是一个  # 导入到  # 是在  # 那是  # 还不  # 要去  # 所需  # 并将  # 就将  # 好用  # 这几个  # 转换为  # 这句  # 如在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Java遍历集合的三种方式  Laravel如何保护应用免受CSRF攻击?(原理和示例)  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  香港服务器网站卡顿?如何解决网络延迟与负载问题?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在阿里云虚拟主机上快速搭建个人网站?  智能起名网站制作软件有哪些,制作logo的软件?  网站图片在线制作软件,怎么在图片上做链接?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何快速搭建虚拟主机网站?新手必看指南  如何在橙子建站中快速调整背景颜色?  Laravel怎么上传文件_Laravel图片上传及存储配置  如何在橙子建站上传落地页?操作指南详解  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  linux写shell需要注意的问题(必看)  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何快速建站并高效导出源代码?  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  JavaScript如何实现音频处理_Web Audio API如何工作?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  深圳网站制作培训,深圳哪些招聘网站比较好?  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何基于云服务器快速搭建网站及云盘系统?  javascript日期怎么处理_如何格式化输出  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何用AI帮你把自己的生活经历写成一个有趣的故事?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何在云服务器上快速搭建个人网站?  Laravel如何使用Livewire构建动态组件?(入门代码)  大同网页,大同瑞慈医院官网?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  如何快速搭建个人网站并优化SEO?  制作公司内部网站有哪些,内网如何建网站?  Android自定义listview布局实现上拉加载下拉刷新功能  Python高阶函数应用_函数作为参数说明【指导】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何快速生成ASP一键建站模板并优化安全性?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何利用DOS批处理实现定时关机操作详解  北京的网站制作公司有哪些,哪个视频网站最好?  如何快速搭建高效香港服务器网站?