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