日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

云信小课堂|简单五步,轻松构建本土「Clubhouse」

發(fā)布時間:2025/3/8 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云信小课堂|简单五步,轻松构建本土「Clubhouse」 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Vol. 2

最近 Clubhouse 一碼難求,獲得眾多互聯(lián)網(wǎng)圈和投資圈人士的關(guān)注,一時之間風(fēng)靡全球。

但受限于各方面原因,Clubhouse 目前還是存在很多限制,比如采用邀請機制、只能 iOS 用戶下載以及國內(nèi) Apple 賬號無法下載等。

就產(chǎn)品本身而言,作為一個初創(chuàng)的即時語聊產(chǎn)品,Clubhouse 也不可避免地存在如房間被動退出、語音延遲性等問題,而這也是國外用戶反映普遍存在的問題。

盡管如此,Clubhouse 的突然火爆,還是讓我們看到了即時語聊市場的龐大需求,聲音社交仍有廣泛的空間

為了更快地幫助國內(nèi)一些即將或者已經(jīng)開始著手搭建即時語音聊天的企業(yè)了解 Clubhouse,搶占先機,本篇文章將從產(chǎn)品設(shè)計、技術(shù)實現(xiàn)以及在搭建中可能存在的技術(shù)難點幾個維度,進行全面的分析和解讀。

只需五步,即可輕松構(gòu)建本土「Clubhouse」!

架構(gòu)設(shè)計

客戶端組件:封裝實現(xiàn)客戶端與應(yīng)用服務(wù) Clubhouse Server 的交互,封裝實現(xiàn)與音視頻的交互。

網(wǎng)關(guān)代理:應(yīng)用服務(wù)的網(wǎng)關(guān)服務(wù)。

Clubhouse Server:仿 ClubHouse 應(yīng)用服務(wù)。

網(wǎng)易 G2 音視頻 RTC 服務(wù):提供穩(wěn)定流暢、高品質(zhì)、全平臺的點對點和多人實時音視頻通話服務(wù),其中包括:

  • 網(wǎng)易云信 IM SDK

  • 網(wǎng)易云信 G2 SDK

架構(gòu)圖如下:

核心流程

分解一下需求,除去用戶標(biāo)簽、房間標(biāo)簽和話題推薦,Clubhouse 的功能大概分為以下幾個板塊:

  • 房間列表

  • 創(chuàng)建/加入房間

  • 管理員邀請用戶

  • 舉手發(fā)言

  • 離開房間

其中,整體的房間控制需要在網(wǎng)易云信 G2 音視頻 SDK 的基礎(chǔ)之上,借助服務(wù)端來控制;加入房間后的音視頻能力,則直接由 SDK 提供;另外服務(wù)端通知則由網(wǎng)易云信 IM SDK 提供的長鏈接服務(wù)來負(fù)責(zé)傳遞。

詳細(xì)流程如下:

1

獲取房間列表

在這一步中,我們調(diào)用服務(wù)端接口獲取到房間列表。

2

創(chuàng)建/加入房間

在這一步中,不論是創(chuàng)建房間還是加入房間,都會調(diào)用服務(wù)端提供的 /clubRoom/join 接口。

在用戶加入到 channelName 房間時,應(yīng)用服務(wù)器會判斷 channelName 是否存在。

如果對應(yīng)房間不存在,會創(chuàng)建一個房間并加入同時返回相應(yīng)的房間信息;如果傳入 channelName 存在,則用戶直接加入該房間。

當(dāng)獲取到服務(wù)端返回的房間信息時,再調(diào)用 G2 SDK 的加入房間 API joinChannelWithToken,真正加入音頻房間。

當(dāng)加入房間成功后,G2 SDK 會抄送消息至應(yīng)用服務(wù)器,更新用戶在房間中的狀態(tài)。

3

管理員邀請用戶加入房間

當(dāng)管理員點擊邀請用戶加入房間時,會先獲取到好友列表,然后服務(wù)端生成一個短鏈返回到客戶端。當(dāng)被邀請者點擊短鏈后,會自動加入房間。

4

舉手發(fā)言

在這一步中,客戶端會先調(diào)用/clubRoom/handsup接口,告訴服務(wù)端我想發(fā)言。

然后,服務(wù)端通過云信 IM 提供的透傳協(xié)議以及長鏈接將消息發(fā)送給房間管理員。

管理員點擊同意時,會調(diào)用管理員會控接口/clubRoom/control/host更新成員音頻狀態(tài)為「發(fā)言狀態(tài)」,同時應(yīng)用服務(wù)器通過 IM 透傳協(xié)議通知舉手者音頻已打開,此時舉手者調(diào)用 G2 的 API enableLocalAudio 來開啟麥克風(fēng)。

5

離開房間

最后,當(dāng)用戶點擊離開房間按鈕后,直接調(diào)用 G2 SDK 的 leaveChannel 方法離開房間,此時,G2 會抄送用戶離開消息至應(yīng)用服務(wù)器,服務(wù)器標(biāo)記該用戶離開。

G2 SDK詳細(xì)說明

其中,G2 SDK 用到的方法的詳細(xì)說明如下:

1. 導(dǎo)入類

在項目中導(dǎo)入 NERtcSDK 類:

#import <NERtcSDK/NERtcSDK.h>

2. 初始化

打開 App 后,先執(zhí)行 - setupEngineWithContext: 方法完成初始化。

@interface Myapp ()<NERtcEngineDelegateEx>...NERtcEngine *coreEngine = [NERtcEngine sharedEngine];NERtcEngineContext *context = [[NERtcEngineContext alloc] init];// 設(shè)置通話相關(guān)信息的回調(diào)context.engineDelegate = self;// 設(shè)置當(dāng)前應(yīng)用的appKeycontext.appKey = AppKey;[coreEngine setupEngineWithContext:context];...

3. 加入房間

加入房間前,請確保已完成初始化相關(guān)事項。通過 – joinChannelWithToken:channelName:myUid:completion: 方法加入房間。

// 示例[NERtcEngine.sharedEngine joinChannelWithToken:@""channelName:roomIdmyUid:userIdcompletion:^(NSError * _Nullable error, uint64_t channelId, uint64_t elapesd) {if (error) {//加入失敗} else {//加入成功}}];

4. 退出通話房間

通過 leaveChannel 接口退出通話房間。

// 示例// 退出通話房間[NERtcEngine.sharedEngine leaveChannel];

NERtcEngineDelegate 提供 – onNERtcEngineDidLeaveChannelWithResult: 來監(jiān)聽當(dāng)前用戶退出房間的結(jié)果。

技術(shù)難點分析

1.音頻技術(shù)難點與解決方案

  • 問題描述

  • 弱網(wǎng)情況下的丟包問題

  • 設(shè)備適配問題

  • 音質(zhì)問題

    • 解決方案

  • 云信音視頻通話2.0使用自研的網(wǎng)絡(luò)引擎弱網(wǎng)算法,保證在80%丟包的傳輸場景下,音頻也能進行正常通話,弱網(wǎng)優(yōu)勢更明顯。

  • 云信針對超過數(shù)千款設(shè)備進行音質(zhì)適配,保證回聲抑制的效果在絕大多數(shù)機型上都有最優(yōu)的表現(xiàn)。

  • 自研的音頻AI降噪算法,可以針對嘈雜人聲、鍵盤聲等非穩(wěn)態(tài)噪聲進行定向降噪,提升對于環(huán)境穩(wěn)態(tài)噪聲的抑制能力,保留更純粹人聲。

  • 2.內(nèi)容管控技術(shù)難題與解決方案

    • 問題描述

  • 對于 Clubhouse 這一類聲音社交的語音聊天室場景,場景中可能出現(xiàn)如暴恐、涉政、色情、廣告等不可控違規(guī)內(nèi)容。隨著有關(guān)部門的監(jiān)管力度不斷增強,平臺對于內(nèi)容進行管控的工作成為了必要。

  • 實時音頻場景下的內(nèi)容審核,由于其場景實時進行的特殊性,對反垃圾服務(wù)也提出了較為嚴(yán)苛的要求。例如,審核結(jié)果必須足夠?qū)崟r,嘈雜場景下的音頻采集不能嚴(yán)重影響檢出率,高并發(fā)場景下需要做到快速響應(yīng)不擁塞等等。

    • 解決方案

    云信針對該場景打磨出了一套完備的實時音頻反垃圾服務(wù),為客戶的業(yè)務(wù)合規(guī)性保駕護航。該服務(wù)通過業(yè)內(nèi)領(lǐng)先的語音識別技術(shù),結(jié)合反垃圾文本過濾規(guī)則體系,精準(zhǔn)、高效分析識別違規(guī)音頻。此外,依托網(wǎng)易云計算資源,動態(tài)擴容,彈性伸縮,滿足客戶的涉黃、涉政、廣告等其他多維度場景的高并發(fā)、高精準(zhǔn)的反垃圾檢測。

    總? 結(jié)

    按照如上五步,我們就可以基于網(wǎng)易云信提供的強大的基礎(chǔ)能力,輕松快速地打造一個屬于自己的「Clubhouse」,趕上風(fēng)口,下一個出圈的就是你!

    示例項目

    • 網(wǎng)易云信官網(wǎng)-多人語聊解決方案

      http://yunxin.163.com/voicechat

    • 網(wǎng)易云信聊天室 NEChatroom源碼

      https://github.com/netease-im/NEChatroom

    • 網(wǎng)易云信G2 SDK iOS端API文檔

      https://dev.yunxin.163.com/docs/product/音視頻通話2.0/快速入門/實現(xiàn)音視頻通話/實現(xiàn)音視頻通話(iOS)

    • 網(wǎng)易云信G2 SDK Android端API文檔

      http://163.lu/FwUqw1

    立即點擊閱讀原文,構(gòu)建屬于你的「Clubhouse」吧!

    總結(jié)

    以上是生活随笔為你收集整理的云信小课堂|简单五步,轻松构建本土「Clubhouse」的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。