FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer

在Android平台上,基于FFmpeg的国产播放器开源框架也有很多了,前有哔哩哔哩的ijkplayer,后有小红书的RedPlayer,参见之前的文章《使用国产的ijkplayer播放器观看网络视频》和《使用国产的RedPlayer播放器观看网络视频》。

除此以外,DKVideoPlayer也是一款优秀的国产Android视频播放器,它基于Kotlin编写,不但集成了Android原生的MediaPlayer,还集成了Jetpack的ExoPlayer,甚至集成了国产的ijkplayer。DKVideoPlayer既支持播放本地视频,也支持播放网络视频,甚至支持播放直播链接,可谓功能强大。
DKVideoPlayer的源码托管地址为https://github.com/Doikki/DKVideoPlayer(星星数5.3k),国内的镜像地址为https://gitcode.com/gh_mirrors/dk/DKVideoPlayer,最新版本是2022年7月发布的v3.3.7,可见该框架的源码更新十分及时,该版本的源码下载地址为https://github.com/Doikki/DKVideoPlayer/archive/refs/tags/3.3.7.tar.gz。
DKVideoPlayer提供了两种集成方式,引用在线库、直接导入源码,分别说明如下:

一、引用DKVideoPlayer在线库

Android工程引用DKVideoPlayer在线库时,需要修改以下两个配置:

1、打开模块级别的build.gradle,给dependencies节点补充下面几行配置,表示引入3.3.7版本的DKVideoPlayer库:

复制代码
# 必选,内部默认使用系统mediaplayer进行解码
implementation 'xyz.doikki.android.dkplayer:dkplayer-java:3.3.7'
# 可选,包含StandardVideoController的实现
implementation 'xyz.doikki.android.dkplayer:dkplayer-ui:3.3.7'
# 可选,使用exoplayer进行解码
implementation 'xyz.doikki.android.dkplayer:player-exo:3.3.7'
# 可选,使用ijkplayer进行解码
implementation 'xyz.doikki.android.dkplayer:player-ijk:3.3.7'
# 可选,如需要缓存或者抖音预加载功能请引入此库
implementation 'xyz.doikki.android.dkplayer:videocache:3.3.7'

2、打开App模块的src/main/AndroidManifest.xml,给manifest节点补充下面几行权限配置,表示声明悬浮窗、存储空间和网络等权限:

复制代码
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

二、直接导入DKVideoPlayer源码

DKVideoPlayer的源码已经适配Android Studio Dolphin(小海豚版本),仅需在项目级别的build.gradle补充国内仓库即可。也就是在repositories节点内部补充以下配置:

复制代码
// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件
maven { url = uri("https://maven.aliyun.com/repository/jcenter") }
maven { url = uri("https://maven.aliyun.com/repository/google")}
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin")}
maven { url = uri("https://maven.aliyun.com/repository/public")}
// 以下添加清华大学的仓库地址
maven { url = uri("https://mirrors.tuna.tsinghua.edu.cn/repository/maven-central/") }

增加以上配置的目的是引入国内的仓库地址,以便加快相关依赖包的下载速度。

等待DKVideoPlayer工程编译通过,把主入口的dkplayer-sample模块安装到手机上,启动之后的App界面如下图所示:

点击【点播】按钮,打开网络视频的播放界面如下图所示:

或者点击【直播】按钮,打开直播链接的播放界面如下图所示:

可见DKVideoPlayer支持调整播放窗口大小、调整播放速度,以及旋转、截图、裁剪等功能,可谓将常见的播放操作一网打尽。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

相关推荐
jike_20266 小时前
iPhone采访录音同时拍现场照片的APP:图片音频同步记录实测
笔记·智能手机·音视频·语音识别
_祝你今天愉快6 小时前
从驱动来分析服务的添加过程
android
小猴子爱上树6 小时前
跨境电商翻译工具推荐:批量图片翻译、视频字幕翻译、智能抠图一站式搞定
人工智能·python·音视频
林澈在路上7 小时前
AI翻唱软件哪个好 2026国产AI写歌工具对比推荐
大数据·人工智能·深度学习·github·aigc·音视频·音频
阿童木写作8 小时前
跨马翻译:AI批量图片翻译与视频字幕翻译工具推荐
人工智能·python·音视频
Dovis(誓平步青云)9 小时前
折叠屏悬停看视频,上半屏和下半屏应该各做什么
android·java·服务器·开发语言·安全·音视频
alexhilton10 小时前
让架构边界变成可执行的测试
android·kotlin·android jetpack
hai_android11 小时前
SendChannel 与 ReceiveChannel 通信机制
android
数据治理自习室13 小时前
AI 应用评测体系(GraphRAG)
android·大数据·人工智能·kotlin
敢敢のwings13 小时前
Wan2.2 模型系统解读:从视频扩散到 WAM 世界模型模块
音视频