FFmpeg開發(fā)筆記(五十二)移動(dòng)端的國(guó)產(chǎn)視頻播放器GSYVideoPlayer
GSYVideoPlayer的Github主頁(yè)為https://github.com/CarGuo/GSYVideoPlayer,截止2024年8月18日,該項(xiàng)目的Github星標(biāo)數(shù)為2萬(wàn),副本數(shù)為0.42萬(wàn),這個(gè)成績(jī)算是相當(dāng)不錯(cuò)的了,要知道FFmpeg項(xiàng)目同期在Github的星標(biāo)數(shù)也才4.44萬(wàn)。
不過在App工程中集成GSYVideoPlayer的話,得注意環(huán)境配置以免導(dǎo)入失敗。具體的導(dǎo)入操作步驟說明如下:
一、安裝Android Studio Jellyfish
雖然GSYVideoPlayer主頁(yè)沒有說明要在哪個(gè)版本的Android Studio中導(dǎo)入該庫(kù),但在實(shí)際操作中發(fā)現(xiàn),即使是前兩年推出的Android Studio Dolphin(小海豚版本)都無法正常導(dǎo)入GSYVideoPlayer,就更別說更早的Android Studio了。
若想正常導(dǎo)入并成功調(diào)用GSYVideoPlayer,還需安裝較新的Android Studio,比如小水母版本的Android Studio Jellyfish。盡管小水母版本的新建App工程采用Kotlin編碼,不過GSYVideoPlayer支持Java編碼,所以仍然可以在Java代碼中調(diào)用GSYVideoPlayer。
二、修改App工程的配置
首先打開App項(xiàng)目的settings.gradle,在repositories節(jié)點(diǎn)內(nèi)部補(bǔ)充下面兩行倉(cāng)庫(kù)配置,以便從指定倉(cāng)庫(kù)拉取GSYVideoPlayer庫(kù)。
接著打開App模塊的build.gradle,在dependencies節(jié)點(diǎn)內(nèi)部?jī)?nèi)部補(bǔ)充下面配置,表示引入9.0.0版本的GSYVideoPlayer庫(kù)。
然后打開App模塊的AndroidManifest.xml,補(bǔ)充下面的互聯(lián)網(wǎng)權(quán)限配置:
完成以上三處配置修改之后,才能在App代碼中使用GSYVideoPlayer的播放器控件。
三、在App代碼中使用播放器
GSYVideoPlayer提供了三種播放器控件,分別是NormalGSYVideoPlayer、GSYADVideoPlayer和ListGSYVideoPlayer,它們?cè)贏pp代碼中的用法分別說明如下:
1、普通播放器NormalGSYVideoPlayer
NormalGSYVideoPlayer用來播放單個(gè)視頻文件,在XML文件中放置該控件的代碼如下所示:
2、廣告播放器GSYADVideoPlayer
GSYADVideoPlayer用來播放視頻文件的片頭廣告,注意該控件要和NormalGSYVideoPlayer搭配使用。在XML文件中放置該控件的代碼如下所示:
3、列表播放器ListGSYVideoPlayer
ListGSYVideoPlayer用來播放在時(shí)間上按順序排成列表的若干視頻文件,在XML文件中放置該控件的代碼如下所示:
在XML文件中放置上述三個(gè)播放器的任意一種控件之后,再回到Java代碼執(zhí)行視頻播放操作。以NormalGSYVideoPlayer為例,通過Java播放單個(gè)視頻文件的代碼例子如下:
然后運(yùn)行測(cè)試App,觀察NormalGSYVideoPlayer播放網(wǎng)絡(luò)視頻的效果如下圖所示:

因?yàn)镹ormalGSYVideoPlayer的播放內(nèi)核基于IJKPlayer、EXOPlayer和AliPlayer,默認(rèn)就支持HLS、RTMP等直播鏈接,所以無需改動(dòng)代碼,只要把視頻地址換成以m3u8結(jié)尾的HLS鏈接,或者以rtmp開頭的RTMP鏈接,即可讓NormalGSYVideoPlayer播放直播內(nèi)容。利用NormalGSYVideoPlayer播放直播視頻的效果圖如下所示:

更多詳細(xì)的FFmpeg開發(fā)知識(shí)參見
浙公網(wǎng)安備 33010602011771號(hào)