GSYVideoPlayer的Github主頁為https://github.com/CarGuo/GSYVideoPlayer,截止2024年8月18日,該專案的Github星標數為2萬,副本數為0.42萬,這個成績算是相當不錯的了,要知道FFmpeg專案同期在Github的星標數也才4.44萬。
不過在App工程中整合GSYVideoPlayer的話,得注意環境配置以免匯入失敗。具體的匯入操作步驟說明如下:
一、安裝Android Studio Jellyfish
雖然GSYVideoPlayer主頁沒有說明要在哪個版本的Android Studio中匯入該庫,但在實際操作中發現,即使是前兩年推出的Android Studio Dolphin(小海豚版本)都無法正常匯入GSYVideoPlayer,就更別說更早的Android Studio了。
若想正常匯入併成功呼叫GSYVideoPlayer,還需安裝較新的Android Studio,比如小水母版本的Android Studio Jellyfish。儘管小水母版本的新建App工程採用Kotlin編碼,不過GSYVideoPlayer支援Java編碼,所以仍然可以在Java程式碼中呼叫GSYVideoPlayer。
二、修改App工程的配置
首先開啟App專案的settings.gradle,在repositories節點內部補充下面兩行倉庫配置,以便從指定倉庫拉取GSYVideoPlayer庫。
接著開啟App模組的build.gradle,在dependencies節點內部內部補充下面配置,表示引入9.0.0版本的GSYVideoPlayer庫。
然後開啟App模組的AndroidManifest.xml,補充下面的網際網路許可權配置:
完成以上三處配置修改之後,才能在App程式碼中使用GSYVideoPlayer的播放器控制元件。
三、在App程式碼中使用播放器
GSYVideoPlayer提供了三種播放器控制元件,分別是NormalGSYVideoPlayer、GSYADVideoPlayer和ListGSYVideoPlayer,它們在App程式碼中的用法分別說明如下:
1、普通播放器NormalGSYVideoPlayer
NormalGSYVideoPlayer用來播放單個影片檔案,在XML檔案中放置該控制元件的程式碼如下所示:
2、廣告播放器GSYADVideoPlayer
GSYADVideoPlayer用來播放影片檔案的片頭廣告,注意該控制元件要和NormalGSYVideoPlayer搭配使用。在XML檔案中放置該控制元件的程式碼如下所示:
3、列表播放器ListGSYVideoPlayer
ListGSYVideoPlayer用來播放在時間上按順序排成列表的若干影片檔案,在XML檔案中放置該控制元件的程式碼如下所示:
在XML檔案中放置上述三個播放器的任意一種控制元件之後,再回到Java程式碼執行影片播放操作。以NormalGSYVideoPlayer為例,透過Java播放單個影片檔案的程式碼例子如下:
然後執行測試App,觀察NormalGSYVideoPlayer播放網路影片的效果如下圖所示:
因為NormalGSYVideoPlayer的播放核心基於IJKPlayer、EXOPlayer和AliPlayer,預設就支援HLS、RTMP等直播連結,所以無需改動程式碼,只要把影片地址換成以m3u8結尾的HLS連結,或者以rtmp開頭的RTMP連結,即可讓NormalGSYVideoPlayer播放直播內容。利用NormalGSYVideoPlayer播放直播影片的效果圖如下所示:
更多詳細的FFmpeg開發知識參見