Stories

Detail Return Return

FFmpeg開發筆記(八十八)基於Compose的國產電視直播開源框架MyTV - Stories Detail

​MyTV是一款使用Android原生開發的網絡直播軟件,它的原理是接入網絡上的直播推流鏈接,通過Android提供的ExoPlayer來播放直播節目。有關網絡推拉流的直播技術可參考《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2  FFmpeg推流和拉流”。

MyTV的源碼託管地址為 https://github.com/yaoxieyoulei/mytv-android (星星數0.7k),國內的鏡像地址為 https://gitcode.com/gh_mirrors/my/mytv-android 。最新版本是2024年12月發佈的tv2.2.7,可見該框架的源碼更新十分及時,該版本的源碼下載鏈接為 https://github.com/yaoxieyoulei/mytv-android/archive/refs/tags/tv2.2.7.tar.gz 。
MyTV的源碼採用Kotlin+Compose編寫,適合Android開發者用作進階練習,不過由於MyTV引入了最新的Android開發技術,因此需要使用較新的Android Studio才能成功導入運行。
這裏以Android Studio Ladybug(小瓢蟲版本)為例,介紹如何在App工程中運行MyTV,詳細的操作步驟如下。

一、導入MyTV源碼

解壓下載後的MyTV源碼,打開settings.gradle.kts,在兩處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")}

增加以上配置的目的是引入國內的倉庫地址,以便加快相關依賴包的下載速度。

二、配置直播源

因為MyTV的視頻源來自網絡上的直播推流鏈接,所以只有提供有效的直播地址才能正常觀看。直播源地址來自下面源碼裏的IPTV_SOURCE_URL變量:app\src\main\java\top\yogiczy\mytv\data\utils\Constants.kt。

const val IPTV_SOURCE_URL =
    "https://mirror.ghproxy.com/https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u"

如果發現無法瀏覽直播畫面,就得檢查Constants.kt裏面IPTV_SOURCE_URL配置的URL地址能否正常訪問。如果不能訪問,就要替換成有效可用的IPTV源地址文件。

三、運行MyTV

解決了直播源的鏈接問題之後,把MyTV安裝到手機上,啓動App的初始界面如下圖所示:​

可見MyTV默認播放網絡上的直播節目。上下滑動屏幕,可以切換直播頻道,也可以點擊菜單按鈕,屏幕會彈出詳細的設置菜單列表如下圖所示,方便用户快速修改相關的直播設置信息。

當然,你也可以把MyTV安裝到基於Android系統的智能電視上,MyTV的遙控器操作方式與主流電視直播軟件類似;
1、頻道切換:使用上下方向鍵,或者數字鍵切換頻道;屏幕上下滑動;
2、頻道選擇:OK鍵;單擊屏幕;
3、設置頁面:按下菜單、幫助鍵,長按OK鍵;雙擊、長按屏幕;
若想收藏某個直播頻道,可以打開應用選台界面,選中某一頻道,長按OK鍵、長按屏幕,將收藏或取消收藏該頻道。若想切換顯示收藏列表,首先移動到頻道列表頂部,然後再次按下方向鍵上,將切換顯示收藏列表。

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

user avatar abelethan Avatar xingfendexiyang Avatar
Favorites 2 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.