RTE 開源|小紅書 REDPlayer 正式釋出!快來 get 同款播放器~
本專案由 RTE 開發者社群 x 小紅書 聯合運營
播放器最初出現在 19 世紀,當時主要用於播放音訊,例如透過留聲機播放唱片。
隨著技術的進步,音訊播放器不斷改進,品質越來越好,體積也越來越小。到了今天,透過手機或網路,人們可以隨時隨地播放音訊和影片。
優秀的播放器有幾個特性:需要提供強大、可擴充套件的功能,流暢的播放效果,順暢的使用者體驗,相容主流平臺,資源佔用小,安全性高。而市面上大多數播放器在相容性、功能、效能、可定製性等方面還有一定的最佳化空間,這也是很多開發者/公司選擇自主開發播放器的原因之一。
基於此,小紅書自主研發了一款跨平臺播放器 —— REDPlayer。不同於行業其他播放器,REDPlayer 具有結構簡單、耦合度低、功能邊界清晰等特點,提供了多種接入方式,技術人員可根據需要靈活選擇,既可快速整合 SDK 使用,也可基於原始碼進行定製開發。
REDPlayer 開源地址:https://github.com/RTE-Dev/REDPlayer
劃重點:Android、iOS、HarmonyOS 等平臺統統支援!如 HLS、MP4、FLV 等多種協議和格式也都支援~
關於 REDPlayer
REDPlayer 的宗旨是讓開發者可以快速清晰的瞭解播放器的基本構造,並可根據個人需求進行簡單擴充套件,滿足不同使用者的多樣需求,可作為學生學習的基礎工具,也可作為企業的商用平臺。
(REDPlayer 架構圖)
REDPlayer 支援點播、直播場景下的多種協議和格式(如 HLS、MP4、FLV 等),並可二次擴充套件更多協議(如 RTC 等)。每個模組均是解耦的,開發者可以根據需要掛載自定義模組,如自研解碼器、渲染器等。
新增小助手微信,備註 REDPlayer 進群
和作者交流工具使用與開發的日常
功能亮點
在過去,由於程式碼質量、文件等問題,播放器的二次開發和定製化很困難。REDPlayer 相容多平臺,開發者現在可以直接整合 REDPlayer,提高開發效率,節省開發時間,讓大家更加專注於業務邏輯的開發。此外,REDPlayer 架構清晰、擴充套件性好,這為二次開發提供了便利,可以根據實際業務需要定製播放器的功能,提升使用者體驗。
功能支援全面,降低開發成本:
- REDPlayer 同時支援多端(如:Android、iOS、HarmonyOS 等)點播、直播下的多種協議和格式(如:HLS、MP4、FLV 等);
- 支援預載、邊下邊播等功能,減少等待時間,提升播放流暢性,給使用者更好的觀看體驗;
- 選擇性支援 HDR、超分等能力;
便利的二次開發:
- 架構清晰、結構簡單,各模組耦合度低且可插拔、擴充性較好,能滿足不同包體積要求下的業務使用;
低成本:
- 記憶體佔用較小、接入成本較低,可同時滿足不同的場景使用(如:課堂學習、企業商用等);
使用者自主性高:
- 可選擇直接根據 Interface 快速接入 SDK 使用、也可以選擇基於 REDPlayer 程式碼做二次開發。開發者們可以根據自身需要選擇。
目前 REDPlayer 開源的功能支援用於建立更復雜的場景,例如在播放一個影片的過程中,使用者可以透過拖動進度條進行實時預覽,或在觀看過程中同時輸入文字形成彈幕等,以豐富整個互動場景的體驗。甚至,可以透過 REDPlayer,實現將摳圖後的人像與影片畫面共享疊加在一起的新影片畫面。
REDPlayer 整合與使用
那麼如何開始整合 REDPlayer 呢?REDPlayer 支援兩種形式的接入方式,即直接 SDK 接入和程式碼接入,下面將針對這兩種方式進行一一說明。
1、直接 SDK 接入
REDPlayer 既支援單一 URL 的輸入,也支援多 URL 的方式(JSON 方式)輸入,使用者可根據自己的需求靈活選擇。
具體步驟如下:
步驟 1:
IMediaPlayer mMediaPlayer = new RedMediaPlayer(); //建立播放器、初始化
步驟 2:
mMediaPlayer.setDataSource(mAppContext, url); //設定url
步驟 3:
mMediaPlayer.setEnableMediaCodec(true); //配置播放引數 mMediaPlayer.setVideoCacheDir(cacheDir);
mMediaPlayer.setLoop(true);
...
步驟 4:
mMediaPlayer.prepareAsync(); //prepare
步驟 5:
mMediaPlayer.start(); //開始播放,prepared狀態後呼叫
至此,影片已經正常播起來了,接下來使用者可以根據需要呼叫不同的介面(具體可見 INTERFACE 介紹)獲取對應的資訊或做對應的動作,如:
void pause(); //暫停播放
void stop(); //停止播放
void reset(); //重置播放
void release(); //退出播放
long getCurrentPosition(); //獲取播放位置
long getDuration(); //獲取影片時長
float getSpeed(); //獲取播放速度
2、C++ 程式碼接入
該模組可基於上述架構圖中介紹,使用者選擇性地接入或替換,在此暫不做詳細說明,具體可見開源工程(https://github.com/RTE-Dev/RedPlayer)。
💪寫在最後
相信長期的價值,REDPlayer 將採取分步開源、逐漸演進的方式落地。因此,我們在 2024 年 1 月進行了第一波程式碼的開源:1、播放中間層程式碼開源(含:例項管理、介面呼叫等),2、REDPlayer 以 SDK 的形式開源。
未來,REDPlayer 也將持續維護迭代。二期,我們將陸續引入 OpenCore 核心模組的自定義開發和支援鴻蒙系統裝置應用等功能,開源 OpenCore 模組程式碼、鴻蒙版塊,進一步提升 REDPlayer 相關能力和開發者體驗。
REDPlayer 開源地址:https://github.com/RTE-Dev/REDPlayer
3 月 7 日晚間的 Dev Talk 直播中, 我們邀請了三位深耕音影片領域及播放器的大佬,大家可以來與 REDPlayer 的作者一起交流互動哦!
新增小助手微信,備註 REDPlayer 進群
和作者交流工具使用與開發的日常
相關文章
- 小紅書怎麼優化排名,小紅書怎麼釋出seo筆記?優化筆記
- 【開啟報名】同學看過來,Apache DolphinScheduler開源之夏課題任務正式釋出!Apache
- 【開源】合摩 WeexBox 正式釋出
- 開源demo| ARCall 小程式開源示例釋出
- 【開源】Qone 正式釋出,使 javascript 支援 .NET LINQJavaScript
- 開源電子書工具Calibre 6.3 釋出
- 紅米6 Pro正式釋出:小劉海+4000mAh 999元起!
- 小紅書怎麼開通直播?小紅書開通直播的圖文教程
- 【開源】Westore 1.0 正式釋出 - 世界上最小卻強大的小程式框架框架
- 來了!Django 2.2 正式釋出Django
- 小紅書:電商碰壁,直播來救
- BSN正式釋出開源外掛DDC保管箱
- 一款開源桌面 YouTube 播放器播放器
- 今日頭條正式釋出小程式
- 重磅來襲!MoneyPrinterPlus一鍵釋出短影片到影片號,抖音,快手,小紅書上線了
- 我第一個開源AI小產品-video2blog即將正式釋出AIIDE
- GitLab Web IDE正式釋出10.7版本並開源GitlabWebIDE
- 開源 CMS Ghost 3.0 釋出,帶來新功能
- RF 微商城一款免費開源的基礎銷售功能的微商城正式釋出
- 網易智企釋出“易+”開源計劃,網易會議元件正式開源元件
- 【開源】Skatch 正式釋出 – 極速渲染抽象派草圖抽象
- 【開源】Skatch 正式釋出 - 極速渲染抽象派草圖抽象
- 【京東開源專案】微前端框架MicroApp 1.0正式釋出前端框架APP
- PolarDB-X V2.4 列存引擎開源正式釋出
- Pigsty v2 正式釋出:更好的RDS PG開源替代
- 開源問答社群軟體 Answer 1.0 正式版釋出!
- Nacos 2.4.0 正式釋出,帶來重磅更新!
- 阿里 Qwen2.5 開源釋出;YouTubeVeo 引入 Google DeepMind Veo 模型丨 RTE 開發者日報阿里Go模型開發者日報
- 《書單分享》小程式開源
- J2PaaS 低程式碼平臺,正式釋出開源版!
- 【微服務】開源PaaS Rainbond v3.6.0正式釋出,Service Mesh開箱即用微服務AI
- Evergreen 3.2.4 和 3.1.10 釋出,開源圖書館管理系統
- 【開源】小程式、小遊戲和Web運動引擎 to2to 釋出遊戲Web
- 益普索&小紅書:2020小紅書年中美妝洞察報告
- 紅米6A正式釋出:AI人臉解鎖/小屏高效能,售價599元AI
- 開源| 呼叫ARUICalling開源元元件釋出UI元件
- 小遊戲釋出雲測試工具,中小團隊的“小又快”可以這麼來遊戲
- 釋出會結束了,百萬紅包來襲!!