語(yǔ)音聊天在泛娛樂(lè)社交行業(yè)中有著重要的地位,行業(yè)中很多佼佼者也都為用戶提供了語(yǔ)音聊天室,甚至有些平臺(tái)最初就是依托語(yǔ)音聊天起家的。從最初的一對(duì)一語(yǔ)音,到以 YY 為引爆點(diǎn)的多人語(yǔ)音群聊,再到現(xiàn)在聚集了一批“音控”且月流水能達(dá)到1億的純語(yǔ)音社交平臺(tái),很多類型的應(yīng)用中都有語(yǔ)音聊天室,我們來(lái)簡(jiǎn)單列舉幾個(gè)。
語(yǔ)音電臺(tái)
這是語(yǔ)音聊天室中比較典型的場(chǎng)景。主播可以在直播間中與給聽眾講故事、唱歌,內(nèi)容形式不一而足,觀眾也可以申請(qǐng)上麥,與主播聊天互動(dòng)。主要實(shí)現(xiàn)的功能就是語(yǔ)音連麥,以及通過(guò)消息系統(tǒng)來(lái)實(shí)現(xiàn)的文字消息功能??此坪?jiǎn)單,但是有些優(yōu)質(zhì)的語(yǔ)音社交平臺(tái)能達(dá)到每月1億的流水。
語(yǔ)音開黑
目前還有一些游戲不支持實(shí)時(shí)語(yǔ)音通話的功能。同時(shí),也有一些王者玩家想收費(fèi)帶青銅小白上分,而游戲中不支持付費(fèi)帶玩,那么語(yǔ)音聊天室成為了滿足需求的出口。在一些應(yīng)用中,玩家可以通過(guò)可付費(fèi)預(yù)約的語(yǔ)音聊天室,允許其他玩家預(yù)約陪玩的,同時(shí)還可以語(yǔ)音開黑。功能上與語(yǔ)音直播相似,只是在這個(gè)頻道中,不需要增加觀眾上下麥的邏輯。
以上只是包含了語(yǔ)音聊天的部分場(chǎng)景而已,綜上來(lái)看,語(yǔ)音聊天室需要滿足的主要功能包括:支持多人參與的語(yǔ)音聊天;支持播放背景音樂(lè);支持設(shè)置背景圖片;
如何實(shí)現(xiàn)語(yǔ)音聊天室
要實(shí)現(xiàn)一個(gè)具備以上功能的語(yǔ)音聊天室,大致可以分為兩步:實(shí)現(xiàn)語(yǔ)音連麥、支持背景音樂(lè)播放。
首先是實(shí)現(xiàn)語(yǔ)音連麥。如果要通過(guò)自研的方法實(shí)現(xiàn),會(huì)相對(duì)復(fù)雜一些,不僅需要自己部署服務(wù)器并做好高并發(fā)應(yīng)對(duì),對(duì)編解碼器進(jìn)行優(yōu)化以解決回聲和噪聲問(wèn)題,還要合理部署邊緣節(jié)點(diǎn)來(lái)解決網(wǎng)絡(luò)延時(shí)問(wèn)題。而以上這些問(wèn)題,我們?cè)缫褳?a target="_blank">開發(fā)者解決,并將接口集成于聲網(wǎng) SDK 中。同時(shí),我們?yōu)榱藥烷_發(fā)者們快速實(shí)現(xiàn),現(xiàn)已正式推出語(yǔ)音聊天室場(chǎng)景化方案。
語(yǔ)音聊天室場(chǎng)景化方案是基于聲網(wǎng)視頻通話 SDK 實(shí)現(xiàn)的。為什么是視頻通話 SDK 而不是語(yǔ)音 SDK 呢?視頻通話 SDK 支持語(yǔ)音與視頻功能。若開發(fā)者做好語(yǔ)音聊天室后,還可以根據(jù)自己需要在該基礎(chǔ)上實(shí)現(xiàn)視頻連麥。而且,更便于已經(jīng)開發(fā)視頻連麥直播的開發(fā)者,進(jìn)一步實(shí)現(xiàn)語(yǔ)音聊天室。下圖為語(yǔ)音聊天室場(chǎng)景化方案的架構(gòu)圖與實(shí)現(xiàn)思路:
首先,房主一端創(chuàng)建 RtcEngine 對(duì)象,并填入 App ID。通過(guò)setChannelProfile 將頻道設(shè)置為直播模式。然后用 setClientRole 來(lái)設(shè)定主播(Broadcaster)和觀眾(Audience)的角色。在主播或觀眾離開房間時(shí),通過(guò)調(diào)用LeaveChannel來(lái)完成。我們可以通過(guò)一張圖,來(lái)了解語(yǔ)音聊天室中接口調(diào)用邏輯:
其次,我們還可以為語(yǔ)音聊天室增加背景音樂(lè)。主播可以在自己的客戶端上選擇要播放的音樂(lè),然后通過(guò) SDK 的 AudioMixing 接口在本地與主播語(yǔ)音混音后播放給連麥聽眾和普通聽眾。
觀眾上下麥、主播離開房間、聊天背景圖片的切換等控制消息,都會(huì)通過(guò)消息系統(tǒng)來(lái)實(shí)現(xiàn)。消息服務(wù)器還承載著另一個(gè)任務(wù),就是傳輸用戶在來(lái)聊天室中的文字消息的傳輸。
最后,考慮到在娛樂(lè)直播、游戲開黑、社交,甚至是教育場(chǎng)景下的語(yǔ)音聊天室,對(duì)于聲音的碼率、采樣率、聲道數(shù)的需求都有細(xì)微差別。我們?cè)赟DK中,還提供了“設(shè)置音質(zhì)”的接口,即 setAudioProfile,供開發(fā)者根據(jù)實(shí)際聽到的效果來(lái)自由調(diào)整。
舉個(gè)例子,如果做的是娛樂(lè)方向的應(yīng)用,會(huì)遇到聽眾頻繁上下麥,并且需要48 KHz采樣率、音樂(lè)編碼、雙聲道、編碼碼率 192 kbps,那么可按照上述代碼來(lái)設(shè)置 profile、scenario。SDK 中對(duì)這個(gè)接口的 profile 與 scenario 各有5個(gè)不同的參數(shù)設(shè)置,具體大家可點(diǎn)擊「閱讀原文」查看 setAudioProfile 的詳細(xì)文檔。
聲網(wǎng)語(yǔ)音聊天室場(chǎng)景化方案
有些開發(fā)者希望以語(yǔ)音社交切入泛娛樂(lè)市場(chǎng),也有一些市場(chǎng)上的視頻社交玩家,希望加入語(yǔ)音聊天室,來(lái)進(jìn)一步拓展市場(chǎng)版圖。由于該場(chǎng)景方案是基于聲網(wǎng)視頻通話 SDK 實(shí)現(xiàn),可以同時(shí)滿足以上兩種需求。
我們?cè)?Github 已經(jīng)提供了一套完整的 Demo,大家可以點(diǎn)擊「閱讀原文」在開發(fā)者文檔中心獲取。在 Demo 的基礎(chǔ)上,開發(fā)者只需要不到1周的時(shí)間,對(duì) UI 和功能做簡(jiǎn)單修改即可準(zhǔn)備測(cè)試上線。語(yǔ)音聊天室場(chǎng)景化方案的優(yōu)勢(shì)包括:
76ms 低延時(shí)
聲網(wǎng) SDK 實(shí)現(xiàn)了全球平均端到端76ms 的實(shí)時(shí)音視頻低延時(shí)傳輸。聲網(wǎng)Agora SD-RTN? 實(shí)時(shí)通信網(wǎng)絡(luò)采用私有 UDP 協(xié)議進(jìn)行傳輸,基于軟件定義優(yōu)化路由選擇最優(yōu)傳輸路徑,自動(dòng)規(guī)避網(wǎng)絡(luò)擁塞和骨干網(wǎng)絡(luò)故障帶來(lái)的影響。同時(shí),根據(jù)我們的統(tǒng)計(jì),除了電信、聯(lián)通、移動(dòng)三大運(yùn)營(yíng)商,全國(guó)還有約2%的小運(yùn)營(yíng)商用戶。聲網(wǎng)也已覆蓋支持了這2%用戶所在的數(shù)十家中小運(yùn)營(yíng)商。
44.1KHz 高音質(zhì)
對(duì)于面向“音控”用戶的產(chǎn)品來(lái)講,必須要保證主播音質(zhì)和背景樂(lè)音質(zhì)的還原度。聲網(wǎng)語(yǔ)音聊天室場(chǎng)景化方案能保證低延時(shí)傳輸?shù)耐瑫r(shí),支持192Kbps 44.1KHz 高音質(zhì)語(yǔ)音。
快速且易于集成
通過(guò)幾個(gè)接口的調(diào)用即可實(shí)現(xiàn)語(yǔ)音聊天室。對(duì)于初次接觸聲網(wǎng) SDK 的開發(fā)者,我們還提供了完成度較高的 Demo,開發(fā)者在根據(jù)自己的需求修改 UI 與功能后,即可在短時(shí)間內(nèi)完成產(chǎn)品原型的開發(fā)。同時(shí),SDK 已經(jīng)為開發(fā)者提供消息系統(tǒng),可以直接通過(guò)接口調(diào)用。
高靈活度與擴(kuò)展性
基于該方案開發(fā)的泛娛樂(lè)社交產(chǎn)品,可以在無(wú)需增加新 SDK 的情況下,進(jìn)一步實(shí)現(xiàn)視頻聊天室。同時(shí),對(duì)于聲網(wǎng)的老用戶來(lái)講,在原先視頻連麥產(chǎn)品的基礎(chǔ)上,快速實(shí)現(xiàn)語(yǔ)音聊天室。另外,聲網(wǎng) SDK 還為開發(fā)者提供更多接口來(lái)進(jìn)一步實(shí)現(xiàn)更多功能。
目前,專注于語(yǔ)音社交的荔枝,在游戲開黑方面的佼佼者 HeyHey,以及在海外市場(chǎng)做得風(fēng)生水起的直播應(yīng)用 Yalla 都在使用由聲網(wǎng) SDK 提供的實(shí)時(shí)音視頻服務(wù)。
-
SDK
+關(guān)注
關(guān)注
3文章
1037瀏覽量
45986
原文標(biāo)題:從底層核心到UI,一套代碼快速實(shí)現(xiàn)語(yǔ)音聊天室
文章出處:【微信號(hào):shengwang-agora,微信公眾號(hào):聲網(wǎng)Agora】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論