ijkplayer阅读学习笔记之ijk源代码获取

本文档详细介绍了在Ubuntu 14.04 x64系统上,使用android-ndk-r10e编译ijkplayer源码的过程。首先从GitHub克隆源码,然后按照指定步骤配置环境,包括安装git、yasm,设置ANDROID_SDK和ANDROID_NDK路径。通过一系列编译脚本,如./init-android.sh和./compile-ijk.sh all,最终成功编译出适用于Android的ijkplayer库文件。
摘要由CSDN通过智能技术生成

工欲善其事必先利其器,阅读ijk之前先搭建环境

ijk源码地址:https://github.com/Bilibili/ijkplayer,直接下载的是 未编译过的,没有so文件,无法运行

下面说说怎么获取编译的版本,首先环境要求

我的编译环境为Ubuntu14.04 x64位和android-ndk-r10e

在上面那个ijk源码的地址往下找,找到Android build 有编译说明:

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

./init-android.sh

cd android/contrib

以下是 Android 中使用 ijkplayer 的基本代码示例: 1. 在 build.gradle 文件中添加 ijkplayer 的依赖: ```groovy implementation 'tv.danmaku.ijk.media:ijkplayer-java:x.x.x' implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:x.x.x' implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:x.x.x' implementation 'tv.danmaku.ijk.media:ijkplayer-x86:x.x.x' implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:x.x.x' ``` 其中 `x.x.x` 是 ijkplayer 版本号,可以在 [https://github.com/bilibili/ijkplayer/releases](https://github.com/bilibili/ijkplayer/releases) 中查看最新版本号。 2. 在布局文件中添加 IjkVideoView 控件: ```xml <tv.danmaku.ijk.media.player.IjkVideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 在 Activity 或 Fragment 中使用 IjkVideoView 播放视频: ```java public class VideoActivity extends AppCompatActivity { private IjkVideoView mVideoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); mVideoView = findViewById(R.id.video_view); // 设置视频地址 mVideoView.setVideoPath("http://example.com/video.mp4"); // 开始播放 mVideoView.start(); } @Override protected void onStop() { super.onStop(); // 停止播放并释放资源 mVideoView.stopPlayback(); } } ``` 4. 可以设置 IjkMediaPlayer 的一些参数,例如: ```java IjkMediaPlayer mediaPlayer = new IjkMediaPlayer(); // 设置播放速度 mediaPlayer.setSpeed(1.5f); // 开启硬解码 mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); // 设置缓冲大小 mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 1024 * 1024); // 设置超时时间 mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 1000000); ``` 这些参数的具体含义可以参考官方文档:[https://github.com/bilibili/ijkplayer/blob/master/android/ijkplayer/ijkplayer-core/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java](https://github.com/bilibili/ijkplayer/blob/master/android/ijkplayer/ijkplayer-core/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java)。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值