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 進群
和作者交流工具使用與開發的日常
相關文章
- 【開啟報名】同學看過來,Apache DolphinScheduler開源之夏課題任務正式釋出!Apache
- 【開源】合摩 WeexBox 正式釋出
- Pebble 2智慧手錶釋出 兩款新品同時來了
- 【開源框架】SqlSugarRepository 全庫ORM 正式釋出框架SqlSugarORM
- 來了!Django 2.2 正式釋出Django
- 一款開源桌面 YouTube 播放器播放器
- BSN正式釋出開源外掛DDC保管箱
- 【開源】Qone 正式釋出,使 javascript 支援 .NET LINQJavaScript
- 開源新聞速遞:Solus 1.2 "Shannon" 正式釋出
- 網易智企釋出“易+”開源計劃,網易會議元件正式開源元件
- 開發註冊 任天堂首款手遊3月正式釋出
- 開源專案buffalo2.0最終版正式釋出
- 開源 CMS Ghost 3.0 釋出,帶來新功能
- RF 微商城一款免費開源的基礎銷售功能的微商城正式釋出
- 【開源】Skatch 正式釋出 – 極速渲染抽象派草圖抽象
- 【開源】Skatch 正式釋出 - 極速渲染抽象派草圖抽象
- 【京東開源專案】微前端框架MicroApp 1.0正式釋出前端框架APP
- 開源問答社群軟體 Answer 1.0 正式版釋出!
- GitLab Web IDE正式釋出10.7版本並開源GitlabWebIDE
- Nacos 2.4.0 正式釋出,帶來重磅更新!
- 小紅書怎麼優化排名,小紅書怎麼釋出seo筆記?優化筆記
- J2PaaS 低程式碼平臺,正式釋出開源版!
- Pigsty v2 正式釋出:更好的RDS PG開源替代
- 開源新聞速遞:Lumina 桌面環境 1.0 正式釋出
- 紅帽開源作業系統CentOS 6.6 正式版釋出作業系統CentOS
- 開源媒體中心 Kodi 15.0 Isengard 正式版釋出
- PolarDB-X V2.4 列存引擎開源正式釋出
- mac電腦微信怎麼多開?快來get下!Mac
- 阿里 Qwen2.5 開源釋出;YouTubeVeo 引入 Google DeepMind Veo 模型丨 RTE 開發者日報阿里Go模型開發者日報
- Xiuno 開發手冊正式釋出。
- 戴爾釋出兩款全新平板 同配置異系統
- Laravel 8 正式釋出!來看看有哪些新特性Laravel
- vue全家桶 仿小紅書開源專案Vue
- 開源demo| ARCall 小程式開源示例釋出
- 千呼萬喚始出來—阿里正式釋出《Java開發手冊》終極版!阿里Java
- Meta開源Llama 3釋出
- renren開源專案釋出
- 蘋果iOS 9.3.3正式釋出 同時推出iOS10 Beta3蘋果iOS