android ijkplayer编译和导入ijkplayer

编程入门 行业动态 更新时间:2024-10-12 10:29:42

<a href=https://www.elefans.com/category/jswz/34/1771384.html style=android ijkplayer编译和导入ijkplayer"/>

android ijkplayer编译和导入ijkplayer

目录

    • 一、简介
    • 二、编译
    • 三、添加https支持
    • 四、导入例子
    • 五、可能遇到的问题

一、简介

  • ijkplayer是bilibili开源的视频播放框架, ijkplayer基于FFmpeg的轻量级Android/iOS视频播放器。FFmpeg的是全球领先的多媒体框架,能够解码,编码, 转码,复用,解复用,流,过滤器和播放大部分的视频格式。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
  • 官方文档地址:
  • 引入包,调用下它的api,即可简单的实现视频播放
  • 但是有很多格式是不支持的,比如m3u8,https链接的视频也不能播放(报Protocol not found),这个时候就需要去编译ijkplayer了。

二、编译

  • 先来两张官方截图,基本上是按照官方的步骤来。

  • 1、准备环境
    (1)、准备一个ubuntu系统(其他的linux发行版没试过),没有的用虚拟机装都行
    (2)、gcc、g++、make什么的基本编译环境得有
    (3)、android sdk,下载地址 : ,我使用的android sdk .zip
    (4)、android ndk 下载地址: (注意要下载对应支持的版本,否则有坑),我使用的android ndk .zip
  • 2、准备好后就可以配置环境变量了,安装git和yasm apt-get install git , apt-get install yasm然后打开环境变量配置文件编辑vim /etc/profile追加。
#这里的路径填自己的
export ANDROID_SDK=/home/zzq/software/androidSdk
export ANDROID_NDK=/home/zzq/software/android-ndk-r10e
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_NDK
  • 保存后使用 source /etc/profile使其生效。
  • 4、拉取ijkplayer代码,配置一些属性;这里选择的第一种方案(比较通用)。
git clone  ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8
cd config
ln -s module-default.sh module.sh
  • 5、初始化和编译,这一步主要在拉取ffmpeg和编译代码,比较慢我要了几个小时,而且拉取ffmpeg中途可能失败,还得重新执行。
./init-android.sh

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

cd ..
./compile-ijk.sh all

  • 编译完成

三、添加https支持

  • 导入了上面的例子以后发现还是不能播放https的视频,查了一下资料是没运行关于openssl的脚本。
  • 1、初始化(前面的步骤就不再赘述了)
 ./init-android.sh
 ./init-android-openssl.sh

  • 2、清理和编译
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all

./compile-ffmpeg.sh clean 
./compile-ffmpeg.sh allcd ..
./compile-ijk.sh all

四、导入例子

  • 1、用Android Studio打开android/ijkplayer,等待Android Studio自动配置好,运行ijkplayer-example,等程序成功安装到手机上后,就可以测试下了,能够成功播放就说明编译已经完全成功了。
  • 2、使用。IJKPlayer使用方法跟系统自带的MediaPlayer用法基本相同。
  • 例子运行起来基本上是这样的。

五、可能遇到的问题

  • 报错You need the NDKr10e or later;解决办法是NDK使用一个低版本,下载地址:.html,最好下载对应r10e版本(.zip)
  • ./libavutil/timer.h:38:31: fatal error: linux/perf_event.h: No such file or directory;解决方案是在module-default.sh文件最后加入export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf",因为是重新设置了属性,所以加入之后编译步骤要重头开始。
  • 报错Could not resolve com.android.support:appcompat-v7:23.0.1或者Please install the Android Support Repository from the Android SDK Manager.
    • 开始是报Could not resolve com.android.support:appcompat-v7:23.0.1,然后我在Android Studio Android SDK管理界面并未发现这个版本;后面报错Please install the Android Support Repository from the Android SDK Manager.的时候了解到从api 26开始,support libraries 需要从google的maven仓库下载,所以需要在project的build.gradle中allprojects 添加如下配置即可
 maven { url "" }

  • 最后附上编译好的代码:,另外文章如果有错误的地方,还请指正。

更多推荐

android ijkplayer编译和导入ijkplayer

本文发布于:2024-02-07 06:16:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754145.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:android   ijkplayer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!