惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
Lohrmann on Cybersecurity
V
Visual Studio Blog
Cyberwarzone
Cyberwarzone
D
Docker
The Hacker News
The Hacker News
C
CERT Recently Published Vulnerability Notes
Vercel News
Vercel News
Project Zero
Project Zero
S
Schneier on Security
aimingoo的专栏
aimingoo的专栏
I
Intezer
腾讯CDC
M
MIT News - Artificial intelligence
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
AWS News Blog
AWS News Blog
GbyAI
GbyAI
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Vulnerabilities – Threatpost
G
Google Developers Blog
N
Netflix TechBlog - Medium
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
Arctic Wolf
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
Recent Announcements
Recent Announcements
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 热门话题
T
Threatpost
Latest news
Latest news
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
The GitHub Blog
The GitHub Blog
T
Tor Project blog
P
Proofpoint News Feed

博客园 - aqi00

15天学会AI应用开发(十六)LangChain实现对话记忆功能 15天学会AI应用开发(十五)使用LangChain封装AI执行链 15天学会AI应用开发(十四)搭建LangChain的开发环境 15天学会AI应用开发(十三)上下文与RAG的阶段性总结 15天学会AI应用开发(十二)从PDF、WORD、网页构建RAG 15天学会AI应用开发(十一)从TXT文件构建RAG知识库 15天学会AI应用开发(十)把文本嵌入模型换成国产模型 15天学会AI应用开发(九)利用Chroma持久化向量数据 15天学会AI应用开发(八)使用向量数据库实现RAG功能 15天学会AI应用开发(七)有了大模型为什么还要引入RAG 15天学会AI应用开发(六)使用离线大模型对文本生成摘要 一文速览 HarmonyOS 6.1.1 推出的十个新特性 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息 15天学会AI应用开发(四)根据Token长度截断历史对话 15天学会AI应用开发(三)把历史对话作为提示词会怎样 15天学会AI应用开发(二)为什么编写提示词这么重要 15天学会AI应用开发(一)搭建AI大模型应用开发环境 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid FFmpeg开发笔记(一百零一)跨平台的开源音视频移动框架MobileFFmpeg 一文速览 HarmonyOS 6.0.1 引入的十个新特性 一文读懂 HarmonyOS 6.1 带来的十大重要升级 新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦 FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer FFmpeg开发笔记(九十八)基于FFmpeg的跨平台图形用户界面LosslessCut FFmpeg开发笔记(九十七)国产的开源视频剪辑工具AndroidVideoEditor FFmpeg开发笔记(九十六)采用Kotlin+Compose的视频编辑器OpenVideoEditor FFmpeg开发笔记(九十五)国产的开源视频美颜工具VideoEditorForAndroid FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia FFmpeg开发笔记(九十二)基于Kotlin的开源Android推流器StreamPack FFmpeg开发笔记(九十一)基于Kotlin的Android直播开源框架RootEncoder FFmpeg开发笔记(九十)采用FFmpeg套壳的音视频转码百宝箱FFBox FFmpeg开发笔记(八十九)基于FFmpeg的直播视频录制工具StreamCap FFmpeg开发笔记(八十八)基于Compose的国产电视直播开源框架MyTV FFmpeg开发笔记(八十七)采用Kotlin的手机开源播放器VLC-Android FFmpeg开发笔记(八十六)基于Node.js的国产视频编辑开源框架OpenCut FFmpeg开发笔记(八十五)基于PyQt和FFmpeg的开源视频剪辑器OpenShot FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播 FFmpeg开发笔记(八十三)国产的视频裁剪框架AndroidVideoTrimmer FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmpd执行推流操作
FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer
aqi00 · 2026-01-17 · via 博客园 - aqi00

在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库:

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

二、直接导入DKVideoPlayer源码

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

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

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

dkplayer1

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

dkplayer2

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

dkplayer3

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

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