基于Android引入IjkPlayer无法播放mkv格式视频的解决方法

 更新时间:2018年01月24日 15:57:52   作者:cyh5027  
下面小编就为大家分享一篇基于Android引入IjkPlayer无法播放mkv格式视频的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

写在前面

项目中直接引用或者直接编译源码得到的ijkplayer在播放mkv文件时出现(-10000)的错误,去项目github查看了才知道,默认是不支持mkv和rmvb格式视频的播放的。

用了一天时间解决(为什么用了一天,因为我蠢啊),这里记录一下解决的方法(官方上面其实已经有了详细的教程,无奈我当时没有很认真看。)这里为我自己这个新手做个记录:

仍然是采用编译源码的方式引入,只是需要按照官方的方法更改一下脚本文件

ijkplayer官方地址:https://github.com/Bilibili/ijkplayer

运行系统:Mac OS

第一步 安装 homebrew, git, yam,ndk

这个网上教程很多,要不就不写了吧。。。。

ndk的版本不要使用15,可以去网上下一个14的版本,否则可能会出现编译错误的状况。

第二步 进行源码的下拉

在终端内输入以下命令:

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.3
./init-android.sh

第三步 修改编译ffmpeg用的脚本文件

这个就是主要的地方了,其实官方已经写了

cd config
rm module.sh
ln -s module-default.sh module.sh
cd android/contrib

第四步 编译源码

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all

第五步 项目中加入对应的so库和引用

编译完成后我们在ijkplayer-android/android/ijkplayer文件夹就能看到对应不同架构的ijkplayer的文件夹

首先将项目导入Android Studio中运行一下,导入这个操作一定要做,不然不会生成

ijkplayer-java-release.aar文件

导入的操作如下:

之后将我们所需架构所对应的包含so文件的文件夹(例:ijkplayer-x86/src/main/libs/下的x86文件夹)和ijkplayer-java-release.aar文件(在ijkplayer-java/build/output/aar文件夹下)拷贝到我们的项目libs目录下

然后在build.gradle文件中添加

android{
 ...
sourceSets {
    main {
      jniLibs.srcDirs = ['libs']
    }
  }
}
repositories {
  mavenCentral()
  flatDir {
    dirs 'libs' 
  }
}
dependencies {
 ...
  compile(name: 'ijkplayer-java-release', ext: 'aar')
 ...
}

到此就搞定了,然后使用就好了,怎么使用,这个网上教程也很多,我也不讲了吧。。。。。。。

以上这篇基于Android引入IjkPlayer无法播放mkv格式视频的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android实现带头像的用户注册页面

    Android实现带头像的用户注册页面

    这篇文章主要介绍了Android实现带头像的用户注册页面的相关资料,介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • Android NavigationBar问题处理的方法

    Android NavigationBar问题处理的方法

    本篇文章主要介绍了Android NavigationBar问题处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 在Android打包中区分测试和正式环境浅析

    在Android打包中区分测试和正式环境浅析

    这篇文章主要给大家介绍了关于在Android打包中如何区分测试和正式环境的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2017-10-10
  • android中NFC读写功能的实现方法

    android中NFC读写功能的实现方法

    这篇文章主要为大家详细介绍了android中NFC读写功能的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Android之日期时间选择控件DatePicker和TimePicker实例

    Android之日期时间选择控件DatePicker和TimePicker实例

    本篇文章主要介绍了Android之日期时间选择控件DatePicker和TimePicker实例,具有一定的参考价值,有兴趣的可以了解一下
    2017-05-05
  • Android采用GET方法进行网络传值

    Android采用GET方法进行网络传值

    这篇文章主要为大家详细介绍了Android采用GET方法进行网络传值的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android入门之计时器Chronometer的使用教程

    Android入门之计时器Chronometer的使用教程

    Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时。本文将利用个简单的示例为大家讲解一下它的使用,感兴趣的小伙伴可以尝试一下
    2022-11-11
  • Android实现调用手机摄像头录像限制录像时长

    Android实现调用手机摄像头录像限制录像时长

    这篇文章主要为大家详细介绍了Android实现调用手机摄像头录像限制录像时长,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 浅谈Android app开发中Fragment的Transaction操作

    浅谈Android app开发中Fragment的Transaction操作

    这篇文章主要介绍了Android app开发中Fragment的Transaction操作,包括Transaction和Fragment的生命周期的联系等内容,需要的朋友可以参考下
    2016-02-02
  • 安卓GreenDao框架一些进阶用法整理

    安卓GreenDao框架一些进阶用法整理

    本文主要对安卓GreenDao框架一些进阶用法进行整理介绍,具有一定的参考价值,需要的朋友一起来看下吧
    2016-12-12

最新评论