博客 / 詳情

返回

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界面如下圖所示:

dkplayer1

點擊【點播】按鈕,打開網絡視頻的播放界面如下圖所示:

dkplayer2

或者點擊【直播】按鈕,打開直播鏈接的播放界面如下圖所示:

dkplayer3

可見DKVideoPlayer支持調整播放窗口大小、調整播放速度,以及旋轉、截圖、裁剪等功能,可謂將常見的播放操作一網打盡。

更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.