Talk is cheap. Show me the code.
這句話相信大家都不陌生,甚至是不少開發(fā)者的信條。這是Linus Torvalds最為人稱道的金句,而提起他,人們還會立馬聯(lián)想到另一個詞,開源。
上世紀九十年代,Linus Torvalds采用自由軟件許可證—— GNU通用公共許可證,發(fā)布了Linux,成為當時開源浪潮的主戰(zhàn)場。此后,Linux在成千上萬開發(fā)者的貢獻下,逐漸成為世界上最受歡迎的操作系統(tǒng)。
二十幾年過去了,業(yè)界關于開源與商業(yè)的齟齬依然未解。但開源在全球范圍內(nèi)的高速發(fā)展已經(jīng)讓人無法忽視。
事實上,軟件開發(fā)本身就是一種社會化的、集體性的智慧活動,大部分的軟件是基于開源基礎架構搭建的,復用大量已有的庫和工具。
開源不僅僅是程序員的技術信仰,更是全球軟件技術和產(chǎn)業(yè)創(chuàng)新的主導模式,是加速基礎軟件創(chuàng)新,加強社會協(xié)作,提升效率、擴充生態(tài)的高效方式。
作為以開發(fā)者為中心的科技企業(yè),創(chuàng)辦8年來,融云始終是開源生態(tài)的參與者和貢獻者。
近期,融云將多個場景化組件開源,包含音樂播放、聊天室、語聊房、視頻直播、語音電臺、音視頻通話等開箱即用的UI解決方案。在 Github 搜索 RongCloud,即可查看相關開源項目代碼。
這是融云在封裝最佳行業(yè)實踐推出第三代場景化SDK,改變行業(yè)供給舊范式之后,進一步服務行業(yè),回饋社區(qū)的關鍵之舉。期待收到更多開發(fā)者的反饋,共同推進行業(yè)發(fā)展。移步【融云全球互聯(lián)網(wǎng)通信云】免費體驗。
融云場景化組件開源
歡迎開發(fā)者使用和反饋
1.場景化音樂播放組件
場景化音樂Kit是融云為開發(fā)者提供的開源項目,適用于語聊房、電臺房、視頻直播等常見社交場景。Kit封裝了音樂播放列表、音樂庫列表、音量控制、氛圍控制等常見UI組件。開發(fā)者只需提供音樂數(shù)據(jù)源并且根據(jù)相關回調(diào)設置RTC相關控制,即可快速實現(xiàn)房間內(nèi)音樂播放等功能。
(融云場景化音樂播放組件)
功能組件
?、僖魳凡シ帕斜?/p>
音樂列表提供了常見的音樂播放、暫停、置頂、刪除等邏輯及UI功能展示,開發(fā)者可以根據(jù)回調(diào)執(zhí)行相應的混音操作或播放器播放操作即可。
播放/暫停:點擊音樂條目可執(zhí)行播放和暫停的回調(diào),開發(fā)者可以控制房間內(nèi)的音樂混音的開始和暫停邏輯。
置頂:每個音樂條目后面有置頂按鈕,開發(fā)者可點擊置頂,把想要置頂?shù)囊魳芬苿拥秸诓シ诺囊魳返南路健?/p>
刪除:每個音樂條目后面有刪除按鈕,可以把該音樂移除播放列表。
?、谝魳穾?/p>
音樂庫列表提供了常見的音樂添加、搜索、分頁加載等邏輯及UI功能展示,開發(fā)者可以根據(jù)回調(diào)提供相應的數(shù)據(jù)即可正常顯示。
分類展示:可按照歌曲分類展示不同的音樂列表。
列表展示:音樂列表按照開發(fā)者提供的音樂數(shù)據(jù)做展示,支持添加到播放列表功能,分頁加載功能,本地上傳功能(上傳后添加到播放列表)。
搜索歌曲:輸入想搜索的歌曲,點擊搜索后,會回調(diào)音樂搜索的接口,開發(fā)者只需在自己的曲庫中做搜索然后把數(shù)據(jù)傳遞給列表即可展示搜索結果。
?、垡袅靠刂?/p>
音樂控制提供了常見的房間內(nèi)音量控制,包括本端音量、遠端音量、麥克風音量、混音等功能,開發(fā)者可以根據(jù)回調(diào)操作具體的音量設置。
本端音量:一般指主播端播放的音量,可以根據(jù)回調(diào)設置本端音量。
遠端音量:一般指觀眾端播放的音量,可以根據(jù)回調(diào)設置遠端音量。
麥克風音量:一般指主播端說話時麥克風傳入的音量,可以根據(jù)回調(diào)設置麥克風音量。
耳返:一般指主播端戴耳機的情況下,是否開啟耳機耳返功能,可以根據(jù)回調(diào)控制。
④氛圍控制
氛圍控制提供了一些進場氛圍音效管理,開發(fā)者可以根據(jù)自己業(yè)務需求定制一些進場音效,根據(jù)數(shù)據(jù)回調(diào)返回UI層做展示,當點擊相應的氛圍時,調(diào)用RTC相應的氛圍播放API。
特性
集成簡單:用戶只需要依賴遠端倉庫或開源項目的源碼即可快速使用。
功能完善:常見的播放列表、音樂庫、音量控制、氛圍控制等一應俱全,用戶可根據(jù)自身需要做增加或刪減。
可定制化:在源碼的基礎上,用戶可以根據(jù)自己業(yè)務需求改動相應代碼即可快速定制化。
可用性強:用戶只需關心數(shù)據(jù)源和相應的操作回調(diào),內(nèi)部沒有封裝RTC任何邏輯,根據(jù)回調(diào)調(diào)用相應RTC的API即可。
2.場景化聊天室組件
RCChatroomSceneKit是一組包含消息列表、底部工具欄、輸入框的UI組件,可廣泛用于即時通訊、語聊房、視頻直播、實時社區(qū)等應用里的聊天交互模塊,支持iOS/Android兩個端。
功能組件
RCChatroomSceneKit主要有三大組件:
?、傧⒘斜?/p>
常顯示在直播間等界面左下部分,顯示公屏消息、觀眾評論、禮物通知等,消息樣式可靈活自定義。
②底部工具欄
顯示在最底部,常見形式是左邊一個輸入框,右邊為一組按鈕均勻排列,使用者可自由定義按鈕功能樣式。
?、坻I盤聯(lián)動輸入框
由底部工具欄左邊輸入框點擊喚起,隨著系統(tǒng)鍵盤升起/消失。支持多行輸入,文字段落動態(tài)滾動。
特性
API設計精簡極致,易用,上手快。
豐富的擴展接口,盡可能滿足開發(fā)者多種需求,如消息體樣式、工具欄按鈕等均可自定義。
支持JSON配置文件自定義UI樣式屬性,讓開發(fā)者有美工一樣的體驗。
3.場景化語聊房組件
RCSceneVoiceRoom是根據(jù)主流語聊房場景開發(fā)設計的開源倉庫,通過RCVoiceRoomLib提供的業(yè)務化接口,快速實現(xiàn)語聊房應用。包含房間管理、麥位管理、聊天室消息、贈送禮物、多人連麥等語聊房必備能力。
功能組件
RCSceneVoiceRoom核心能力主要有:
?、俣嗳诉B麥
房間內(nèi)觀眾可以通過申請連麥、邀請連麥、自由上麥的方式進行連麥。
?、邴溛还芾?/p>
房主或管理員可以控制麥位閉麥和鎖麥,也可以快速全量閉麥和鎖麥。
?、哿奶焓蚁?/p>
顯示在最底部,房間內(nèi)用戶可以發(fā)送文字、表情、語音等類型消息,點擊消息可以查看用戶信息。
④贈送禮物
支持指定用戶或全麥用戶打賞,分為普通禮物和全服禮物,全服禮物在所有房間展示并支持跳轉(zhuǎn)。
?、菀魳凡シ?/p>
房主可以通過混音模式播放音樂,支持音樂收藏、搜索、分類、浮窗、音量控制、耳返等功能。
特性
簡潔:移動端只需一行代碼即可接入語聊房功能,開發(fā)者不需要花費太長的時間學習,不用關心內(nèi)部實現(xiàn),只需對接簡單的接口和抽象的回調(diào)。
穩(wěn)定:語聊房組件提供了穩(wěn)定的業(yè)務能力。API的設計更抽象化,除非特殊情況,接口不會更改,更多的是對接口能力的擴展。所有功能都經(jīng)過嚴格測試,確保在運行期間的穩(wěn)定。
豐富:語聊房組件覆蓋全部主流業(yè)務功能,提供一套完整的UI設計,并將不斷更新依賴組件,如禮物動效、更多類型的麥位布局等。
4.場景化視頻直播組件
RCSceneVideoRoom是基于RCLiveVideoLib快速實現(xiàn)的視頻直播場景化組件。
開發(fā)者可以在移動端通過一行代碼實現(xiàn)視頻直播場景;視頻直播通過RCLiveVideoLib的內(nèi)置布局和自定義布局實現(xiàn)了快速切換連麥布局的功能,涵蓋絕大多數(shù)主流業(yè)務場景的布局方式;包含房間管理、麥位管理、聊天室消息、贈送禮物、多人連麥、跨房間PK等社交娛樂場景必備的能力。
5.場景化語音電臺組件
RCSceneRadioRoom是對IM和RTC的能力在語音電臺場景的快速實現(xiàn),通過使用CDN推拉流的技術,實現(xiàn)單主播語音直播,不限觀眾收聽。在語音電臺場景配置了聊天室消息、贈送禮物、音樂播放等功能。
6.場景化音視頻通話組件
RCSceneCall是基于融云RCCallLib對于呼叫場景的完整封裝,支持常規(guī)的單人音頻和視頻呼叫,并增加了撥號鍵盤和撥號記錄等業(yè)務功能。
開源、協(xié)作
有效提升數(shù)字世界生產(chǎn)力
在當代社會嚴密的商業(yè)秩序之下,開源保留著互聯(lián)網(wǎng)精神最初的美好——共享、公開,讓信息更容易獲取、更加自由。開源的驅(qū)動力本身就凝聚了工程師的這種理想主義情結,也構成和代表著互聯(lián)網(wǎng)的開放精神內(nèi)核:我為人人,人人為我。
“當你基于自己的積累對一個問題有了更好的解決方案,難免手癢想要分享給其他人。”這是選擇開源的大部分工程師的出發(fā)點,繼而基于社區(qū)的反饋和用戶的共建,打造活躍而廣泛的生態(tài),促進項目的高速、可持續(xù)發(fā)展,改進和完善項目。
經(jīng)過了二十幾年的發(fā)展,開源產(chǎn)業(yè)越來越成熟,進入高速發(fā)展期,越來越多公司加入開源共建。
根據(jù)GitHub數(shù)據(jù),2021年GitHub新增活躍用戶數(shù)超過1600萬,新增活躍代碼倉庫數(shù)量超過6100萬。
在國內(nèi),對開源的關注首先表現(xiàn)在國家戰(zhàn)略層的重視上。“十四五”規(guī)劃明確寫到支持開源社區(qū)發(fā)展,鼓勵企業(yè)開放軟件源代碼,開源成為促進我國數(shù)字經(jīng)濟發(fā)展的一項重要策略。開放原子開源基金會的注冊成立也是國內(nèi)開源產(chǎn)業(yè)成熟的一個標志性事件,開源迎來了一個前所未有的好時期。
GitHub數(shù)據(jù)顯示,中國開發(fā)者已達755萬+,數(shù)量排名第二。
開源對軟件開發(fā)最直接的意義,在于提高生產(chǎn)力。一方面是基于前人的成果繼續(xù)創(chuàng)新,“不要重復造輪子”;另一方面是通過共建共同推進領域發(fā)展。
在“一切為了開發(fā)者”的發(fā)展宗旨下,融云的使命之一就是幫助開發(fā)者更加多、快、好、省地完成軟件開發(fā)和業(yè)務實現(xiàn)。開源也是融云工程師文化的一部分,8年來,在IM即時通訊和RTC實時音視頻技術持續(xù)精進和引領行業(yè)的過程中,融云不斷抽取典型用例進行開源。
隨著語聊房、直播等線上娛樂產(chǎn)業(yè)的發(fā)展,融云的通信云服務在社交、泛娛樂、游戲等領域遍地開花,并不斷積累垂直行業(yè)經(jīng)驗。在服務開發(fā)者的過程中,融云抽取最佳實踐推出第三代場景化SDK,支持開發(fā)者開箱即用地研發(fā)語聊房、直播、音視頻通話等應用。
疫情之下,泛娛樂社交市場需求空前,市場上出現(xiàn)了大量相關產(chǎn)業(yè)軟件開發(fā)人員,他們需要更多的技能、用例和工具。
融云將陸續(xù)開源全套內(nèi)嵌業(yè)務邏輯的體系化組件,免去開發(fā)者們對一些通用組件的重復開發(fā),需要解決類似問題的開發(fā)者可以直接使用,從而得以將精力集中在其他更有價值和創(chuàng)意的方向。
在由軟件構筑的數(shù)字世界中,開源是提高人類共同生產(chǎn)力的有效協(xié)作方式。未來,融云場景化還將開源禮物、麥位管理等核心組件,持續(xù)為行業(yè)貢獻自己在具體領域的成熟解決方案,拓寬技術的應用領域,為外部需求貢獻的同時也讓自身技術在更多用例的反饋下更加成熟,走向社區(qū)、共建生態(tài)。
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。 )