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

作者:cyh5027 时间:2023-02-24 22:32:35 

写在前面

项目中直接引用或者直接编译源码得到的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引入IjkPlayer无法播放mkv格式视频的解决方法

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

ijkplayer-java-release.aar文件

导入的操作如下:

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

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

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

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

然后在build.gradle文件中添加


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

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

来源:http://blog.csdn.net/cyh5027/article/details/78664422

标签:Android,IjkPlayer,无法播放,mkv
0
投稿

猜你喜欢

  • Java中的静态内部类详解及代码示例

    2021-11-25 08:50:00
  • SpringMVC中@RequestMapping注解用法实例

    2022-02-26 11:22:58
  • C#中WPF使用多线程调用窗体组件的方法

    2023-04-24 11:47:57
  • Java中ThreadLocal避免内存泄漏的方法详解

    2023-04-02 12:51:42
  • Netty分布式NioEventLoop任务队列执行源码分析

    2022-10-08 04:07:19
  • Winform控件Picture实现图片拖拽显示效果

    2022-04-01 05:49:54
  • Android 编程下字库的使用及注意事项

    2021-09-23 13:37:59
  • 通过C#程序操作Config文件

    2023-11-30 14:24:06
  • Flutter Android应用启动白屏的解决方案

    2022-10-02 04:08:04
  • Java synchronized锁升级jol过程详解

    2023-04-15 04:58:51
  • java关于并发模型中的两种锁知识点详解

    2023-09-16 02:05:34
  • .NET实现父窗体关闭而不影响子窗体的方法

    2022-10-06 20:56:04
  • 解析Android游戏中获取电话状态进行游戏暂停或继续的解决方法

    2023-09-09 00:31:09
  • 浅析C#的复制和克隆

    2022-08-30 15:27:13
  • SpringBoot如何使用RateLimiter通过AOP方式进行限流

    2023-09-16 18:18:44
  • Kotlin 基础教程之异常

    2022-10-31 06:34:52
  • android开发之为activity增加左右手势识别示例

    2021-09-30 12:41:50
  • 解决FeignClient发送post请求异常的问题

    2022-08-08 15:55:58
  • java实现的RSA加密算法详解

    2022-11-19 06:14:44
  • Android基于ListView实现类似Market分页加载效果示例

    2021-10-01 10:44:32
  • asp之家 软件编程 m.aspxhome.com