場景化元件開源,融雲持續回饋開源生態

融雲RongCloud發表於2022-05-03

Talk is cheap. Show me the code.關注【融雲全球網際網路通訊雲】瞭解更多

這句話相信大家都不陌生,甚至是不少開發者的信條。這是 Linus Torvalds 最為人稱道的金句,而提起他,人們還會立馬聯想到另一個詞,開源。

上世紀九十年代,Linus Torvalds 採用自由軟體許可證—— GNU 通用公共許可證,釋出了 Linux,成為當時開源浪潮的主戰場。此後,Linux 在成千上萬開發者的貢獻下,逐漸成為世界上最受歡迎的作業系統。

二十幾年過去了,業界關於開源與商業的齟齬依然未解。但開源在全球範圍內的高速發展已經讓人無法忽視。

事實上,軟體開發本身就是一種社會化的、集體性的智慧活動,大部分的軟體是基於開源基礎架構搭建的,複用大量已有的庫和工具。

開源不僅僅是程式設計師的技術信仰,更是全球軟體技術和產業創新的主導模式,是加速基礎軟體創新,加強社會協作,提升效率、擴充生態的高效方式。

作為以開發者為中心的科技企業,創辦 8 年來,融雲始終是開源生態的參與者和貢獻者。

近期,融雲將多個場景化元件開源,包含音樂播放、聊天室、語聊房、視訊直播、語音電臺、音視訊通話等開箱即用的 UI 解決方案。

這是融雲在封裝最佳行業實踐推出第三代場景化 SDK,改變行業供給舊正規化之後,進一步服務行業,回饋社群的關鍵之舉。期待收到更多開發者的反饋,共同推進行業發展。

融雲場景化元件開源歡迎開發者使用和反饋

1. 場景化音樂播放元件

場景化音樂 Kit 是融云為開發者提供的開源專案,適用於語聊房、電臺房、視訊直播等常見社交場景。Kit 封裝了音樂播放列表、音樂庫列表、音量控制、氛圍控制等常見 UI 元件。開發者只需提供音樂資料來源並且根據相關回撥設定 RTC 相關控制,即可快速實現房間內音樂播放等功能。

(融雲場景化音樂播放元件)

功能元件

① 音樂播放列表
音樂列表提供了常見的音樂播放、暫停、置頂、刪除等邏輯及 UI 功能展示,開發者可以根據回撥執行相應的混音操作或播放器播放操作即可。
播放/暫停:點選音樂條目可執行播放和暫停的回撥,開發者可以控制房間內的音樂混音的開始和暫停邏輯。

置頂:每個音樂條目後面有置頂按鈕,開發者可點選置頂,把想要置頂的音樂移動到正在播放的音樂的下方。

刪除:每個音樂條目後面有刪除按鈕,可以把該音樂移除播放列表。

② 音樂庫
音樂庫列表提供了常見的音樂新增、搜尋、分頁載入等邏輯及 UI 功能展示,開發者可以根據回撥提供相應的資料即可正常顯示。

分類展示:可按照歌曲分類展示不同的音樂列表。

列表展示:音樂列表按照開發者提供的音樂資料做展示,支援新增到播放列表功能,分頁載入功能,本地上傳功能(上傳後新增到播放列表)。

搜尋歌曲:輸入想搜尋的歌曲,點選搜尋後,會回撥音樂搜尋的介面,開發者只需在自己的曲庫中做搜尋然後把資料傳遞給列表即可展示搜尋結果。

③ 音量控制
音樂控制提供了常見的房間內音量控制,包括本端音量、遠端音量、麥克風音量、混音等功能,開發者可以根據回撥操作具體的音量設定。

本端音量:一般指主播端播放的音量,可以根據回撥設定本端音量。

遠端音量:一般指觀眾端播放的音量,可以根據回撥設定遠端音量。

麥克風音量:一般指主播端說話時麥克風傳入的音量,可以根據回撥設定麥克風音量。

耳返:一般指主播端戴耳機的情況下,是否開啟耳機耳返功能,可以根據回撥控制。

④ 氛圍控制
氛圍控制提供了一些進場氛圍音效管理,開發者可以根據自己業務需求定製一些進場音效,根據資料回撥返回 UI 層做展示,當點選相應的氛圍時,呼叫 RTC 相應的氛圍播放 API。

特性

整合簡單:使用者只需要依賴遠端倉庫或開源專案的原始碼即可快速使用。

功能完善:常見的播放列表、音樂庫、音量控制、氛圍控制等一應俱全,使用者可根據自身需要做增加或刪減。

可定製化:在原始碼的基礎上,使用者可以根據自己業務需求改動相應程式碼即可快速定製化。

可用性強:使用者只需關心資料來源和相應的操作回撥,內部沒有封裝 RTC 任何邏輯,根據回撥呼叫相應 RTC 的 API 即可。

地址

Android: https://github.com/rongcloud-...

iOS: https://github.com/rongcloud-...

2. 場景化聊天室元件

RCChatroomSceneKit 是一組包含訊息列表、底部工具欄、輸入框的 UI 元件,可廣泛用於即時通訊、語聊房、視訊直播、實時社群等應用裡的聊天互動模組,支援 iOS/Android 兩個端。

功能元件

RCChatroomSceneKit 主要有三大元件:

① 訊息列表
常顯示在直播間等介面左下部分,顯示公屏訊息、觀眾評論、禮物通知等,訊息樣式可靈活自定義。

② 底部工具欄
顯示在最底部,常見形式是左邊一個輸入框,右邊為一組按鈕均勻排列,使用者可自由定義按鈕功能樣式。

③ 鍵盤聯動輸入框
由底部工具欄左邊輸入框點選喚起,隨著系統鍵盤升起/消失。支援多行輸入,文欄位落動態滾動。

特性

API 設計精簡極致,易用,上手快。
豐富的擴充套件介面,儘可能滿足開發者多種需求,如訊息體樣式、工具欄按鈕等均可自定義。
支援 JSON 配置檔案自定義 UI 樣式屬性,讓開發者有美工一樣的體驗。

地址

Android: https://github.com/rongcloud-...
iOS: https://github.com/rongcloud-...

3. 場景化語聊房元件

RCSceneVoiceRoom 是根據主流語聊房場景開發設計的開源倉庫,通過 RCVoiceRoomLib 提供的業務化介面,快速實現語聊房應用。包含房間管理、麥位管理、聊天室訊息、贈送禮物、多人連麥等語聊房必備能力。

功能元件

RCSceneVoiceRoom 核心能力主要有:
① 多人連麥
房間內觀眾可以通過申請連麥、邀請連麥、自由上麥的方式進行連麥。

② 麥位管理
房主或管理員可以控制麥位閉麥和鎖麥,也可以快速全量閉麥和鎖麥。

③ 聊天室訊息
顯示在最底部,房間內使用者可以傳送文字、表情、語音等型別訊息,點選訊息可以檢視使用者資訊。

④ 贈送禮物
支援指定使用者或全麥使用者打賞,分為普通禮物和全服禮物,全服禮物在所有房間展示並支援跳轉。

⑤ 音樂播放
房主可以通過混音模式播放音樂,支援音樂收藏、搜尋、分類、浮窗、音量控制、耳返等功能。

特性

簡潔:移動端只需一行程式碼即可接入語聊房功能,開發者不需要花費太長的時間學習,不用關心內部實現,只需對接簡單的介面和抽象的回撥。
穩定:語聊房元件提供了穩定的業務能力。API 的設計更抽象化,除非特殊情況,介面不會更改,更多的是對介面能力的擴充套件。所有功能都經過嚴格測試,確保在執行期間的穩定。
豐富:語聊房元件覆蓋全部主流業務功能,提供一套完整的 UI 設計,並將不斷更新依賴元件,如禮物動效、更多型別的麥位佈局等。

地址

Android: https://github.com/rongcloud-...
iOS: https://github.com/rongcloud-...

4. 場景化視訊直播元件

RCSceneVideoRoom 是基於 RCLiveVideoLib 快速實現的視訊直播場景化元件。

開發者可以在移動端通過一行程式碼實現視訊直播場景;視訊直播通過 RCLiveVideoLib 的內建佈局和自定義佈局實現了快速切換連麥佈局的功能,涵蓋絕大多數主流業務場景的佈局方式;包含房間管理、麥位管理、聊天室訊息、贈送禮物、多人連麥、跨房間 PK 等社交娛樂場景必備的能力。

地址

Android: https://github.com/rongcloud-...
iOS: https://github.com/rongcloud-...

5. 場景化語音電臺元件

RCSceneRadioRoom 是對 IM 和 RTC 的能力在語音電臺場景的快速實現,通過使用 CDN 推拉流的技術,實現單主播語音直播,不限觀眾收聽。在語音電臺場景配置了聊天室訊息、贈送禮物、音樂播放等功能。

地址

Android: https://github.com/rongcloud-...
iOS: https://github.com/rongcloud-...

6. 場景化音視訊通話元件

RCSceneCall 是基於融雲 RCCallLib 對於呼叫場景的完整封裝,支援常規的單人音訊和視訊呼叫,並增加了撥號鍵盤和撥號記錄等業務功能。

地址

Android: https://github.com/rongcloud-...
iOS: https://github.com/rongcloud-...

開源、協作有效提升數字世界生產力

在當代社會嚴密的商業秩序之下,開源保留著網際網路精神最初的美好——共享、公開,讓資訊更容易獲取、更加自由。開源的驅動力本身就凝聚了工程師的這種理想主義情結,也構成和代表著網際網路的開放精神核心:我為人人,人人為我。

“當你基於自己的積累對一個問題有了更好的解決方案,難免手癢想要分享給其他人。”這是選擇開源的大部分工程師的出發點,繼而基於社群的反饋和使用者的共建,打造活躍而廣泛的生態,促進專案的高速、可持續發展,改進和完善專案。

經過了二十幾年的發展,開源產業越來越成熟,進入高速發展期,越來越多公司加入開源共建。

根據 GitHub 資料,2021 年 GitHub 新增活躍使用者數超過 1600 萬,新增活躍程式碼倉庫數量超過 6100 萬。

在國內,對開源的關注首先表現在國家戰略層的重視上。“十四五”規劃明確寫到支援開源社群發展,鼓勵企業開放軟體原始碼,開源成為促進我國數字經濟發展的一項重要策略。開放原子開源基金會的註冊成立也是國內開源產業成熟的一個標誌性事件,開源迎來了一個前所未有的好時期。

GitHub 資料顯示,中國開發者已達 755萬+,數量排名第二。

開源對軟體開發最直接的意義,在於提高生產力。一方面是基於前人的成果繼續創新,“不要重複造輪子”;另一方面是通過共建共同推進領域發展。

在“一切為了開發者”的發展宗旨下,融雲的使命之一就是幫助開發者更加多、快、好、省地完成軟體開發和業務實現。開源也是融雲工程師文化的一部分,8 年來,在 IM 即時通訊和 RTC 實時音視訊技術持續精進和引領行業的過程中,融雲不斷抽取典型用例進行開源。

隨著語聊房、直播等線上娛樂產業的發展,融雲的通訊雲服務在社交、泛娛樂、遊戲等領域遍地開花,並不斷積累垂直行業經驗。在服務開發者的過程中,融雲抽取最佳實踐推出第三代場景化 SDK,支援開發者開箱即用地研發語聊房、直播、音視訊通話等應用。

疫情之下,泛娛樂社交市場需求空前,市場上出現了大量相關產業軟體開發人員,他們需要更多的技能、用例和工具。

融雲將陸續開源全套內嵌業務邏輯的體系化元件,免去開發者們對一些通用元件的重複開發,需要解決類似問題的開發者可以直接使用,從而得以將精力集中在其他更有價值和創意的方向。

在由軟體構築的數字世界中,開源是提高人類共同生產力的有效協作方式。未來,融雲場景化還將開源禮物、麥位管理等核心元件,持續為行業貢獻自己在具體領域的成熟解決方案,拓寬技術的應用領域,為外部需求貢獻的同時也讓自身技術在更多用例的反饋下更加成熟,走向社群、共建生態。

相關文章