亚洲AV无码一区二区三区16_亚洲AV无码一区_公交车上~嗯啊被高潮了啊视频_女人扒开屁股桶爽30分钟_久久精品人人爽快人人爽爽

環(huán)球熱推薦:“卷”到海外!教你實(shí)現(xiàn)海外語聊社交 - 行業(yè)資訊 -

當(dāng)前位置:首頁  >  行業(yè)資訊  > 正文

環(huán)球熱推薦:“卷”到海外!教你實(shí)現(xiàn)海外語聊社交

環(huán)球熱推薦:“卷”到海外!教你實(shí)現(xiàn)海外語聊社交
2023-02-16 21:02:08 來源:騰訊云

導(dǎo)讀|隨著互聯(lián)網(wǎng)出海的熱潮襲來,語聊社交出海再度掀起新一輪風(fēng)口,國(guó)內(nèi)外基于語音聊天室的社交APP如雨后春筍般涌現(xiàn)出來。然而隨著國(guó)內(nèi)同質(zhì)化競(jìng)爭(zhēng)加劇,大量國(guó)內(nèi)團(tuán)隊(duì)選擇出海分一杯羹。那么海外語聊社交場(chǎng)景有什么特點(diǎn)?其實(shí)現(xiàn)方案又與國(guó)內(nèi)有何不同?讀完本文,你將能夠理解并掌握基于騰訊云音視頻搭建語聊房的基本要素,以及海外語聊方案的具體實(shí)現(xiàn)和優(yōu)化思路。

什么是語聊社交?

主要特點(diǎn)

語聊社交的典型形態(tài)就是語聊房,語聊房是指在線語音連麥虛擬房間,每個(gè)房間通常設(shè)有 5-10 個(gè)麥位,主播和連麥觀眾在麥上聊天,其他觀眾可以進(jìn)入房間觀看。不同房型的麥位數(shù)量和房間內(nèi)可容納最大觀眾數(shù)量不同。

語聊社交APP示例

場(chǎng)景玩法

在語聊房場(chǎng)景中,房主和幾名麥上用戶以語音的方式在線互動(dòng),麥下觀眾不能發(fā)言只能收聽,通過贈(zèng)送禮物和聊天消息互動(dòng)。房間通常會(huì)設(shè)置不同的主題類型,以吸引具有相同愛好的用戶觀看互動(dòng)。語聊房目前比較常見的形式有1V1語聊房、多人語聊房、電臺(tái)語聊房、KTV語聊房。


【資料圖】

1)1V1語聊房

1V1語聊房常見的應(yīng)用場(chǎng)景有單聊、陪聊、語音匹配交友等,大部分社交類App都上線了1V1語聊功能,通常分為免費(fèi)和付費(fèi)兩種模式。

2)多人語聊房

多人語聊房延伸出的玩法非常多,其中每種玩法都有所差別。除了多人純語聊,還有跟其他娛樂形式結(jié)合的玩法。比如在線會(huì)議、游戲開黑、賽事直播、一起看電影等。

3)電臺(tái)語聊房

在電臺(tái)語聊房場(chǎng)景中,通常會(huì)有主播單人直播或主持人和幾名陪聊嘉賓,同時(shí)播放背景音樂和音效,麥下觀眾可以贈(zèng)送禮物,上麥參與語音互動(dòng)。

4)KTV語聊房

在KTV語聊房場(chǎng)景中,大家可以點(diǎn)歌、接唱、合唱等,主要分為排麥獨(dú)唱和實(shí)時(shí)合唱兩種模式。 排麥獨(dú)唱為一個(gè)人主唱,其他連麥用戶排隊(duì)等候輪唱。 實(shí)時(shí)合唱為多個(gè)人同時(shí)合唱,連麥用戶可以隨時(shí)申請(qǐng)加入合唱。

如何搭建語聊社交應(yīng)用?

通常一個(gè)完整的語聊社交應(yīng)用,根據(jù)功能的完整度,可以分為四個(gè)層級(jí):基礎(chǔ)組件、功能層、應(yīng)用層、業(yè)務(wù)層。整體架構(gòu)如下所示,接下來會(huì)逐個(gè)講解各層級(jí)的內(nèi)容,以對(duì)搭建語聊房的基本要素有個(gè)比較完整的認(rèn)知。

語聊社交技術(shù)架構(gòu)

基礎(chǔ)組件:提供最基礎(chǔ)的能力,比如音頻互動(dòng)、文字交流、回放存儲(chǔ)等,該組件主要以SDK或者某一單獨(dú)的服務(wù)呈現(xiàn),比如實(shí)時(shí)音視頻SDK、即時(shí)通信IM SDK、直播/點(diǎn)播服務(wù)、審核服務(wù)等。

功能層:基礎(chǔ)組件中能力的應(yīng)用,比如彈幕,就是使用到即時(shí)通信IM SDK中的文字交流的能力;還有麥位移動(dòng),是指麥位列表中的某人的麥位進(jìn)行了變更,也是借助了即時(shí)通信IM的信令能力,將某人麥位變化的信息下發(fā)到房間內(nèi)。

業(yè)務(wù)層:功能模塊的聚合,比如創(chuàng)建房間、房間列表、進(jìn)/退房就是房間管理的聚合;上/下麥、麥位移動(dòng)、麥位禁言、鎖麥/解鎖麥就是麥位管理的聚合。

應(yīng)用層:最終呈現(xiàn)給用戶的業(yè)務(wù)形態(tài),比如1V1語聊、多人語聊、語音電臺(tái)等都是業(yè)務(wù)層根據(jù)一定玩法形態(tài)展現(xiàn)給用戶的。

在整個(gè)語聊技術(shù)架構(gòu)實(shí)現(xiàn)中,難度最大的是基礎(chǔ)組件的實(shí)現(xiàn)。如果完全進(jìn)行自研的話,開發(fā)成本高而且周期較長(zhǎng)。比如開發(fā)實(shí)時(shí)音視頻組件,就需要具備專業(yè)的音視頻底層技術(shù)開發(fā)能力,還需要處理一系列的機(jī)型適配、漏回音、無聲、節(jié)點(diǎn)部署、網(wǎng)絡(luò)互通等復(fù)雜問題。為此我們可以考慮使用云上提供的基礎(chǔ)組件,站在巨人的肩膀上,能夠有效降低開發(fā)成本,實(shí)現(xiàn)快速上線。

如何基于騰訊云實(shí)現(xiàn)語聊社交?

騰訊云提供了豐富的基礎(chǔ)組件,能滿足實(shí)現(xiàn)語聊房所需的基礎(chǔ)組件。接下來將基于騰訊云提供的基礎(chǔ)組件,對(duì)語聊房架構(gòu)實(shí)現(xiàn)進(jìn)行詳細(xì)的講解,并從核心業(yè)務(wù)模塊中的房間管理、麥位管理、音視頻流管理,錄制與審核,貫穿核心功能進(jìn)行分析。

1)房間管理

語聊社交主要是在一個(gè)個(gè)房間內(nèi)進(jìn)行語音互動(dòng)的,創(chuàng)建房間的用戶是為主播,其他進(jìn)入房間的用戶為觀眾。房間管理主要負(fù)責(zé)對(duì)一個(gè)個(gè)房間進(jìn)行管理,主要功能包括對(duì)房間的創(chuàng)建、銷毀、加入、退出。

技術(shù)架構(gòu)

在房間管理的實(shí)現(xiàn)中,主要有房間列表、房間創(chuàng)建/銷毀/進(jìn)入/退出的功能。功能看似比較簡(jiǎn)單,是否由業(yè)務(wù)側(cè)自己完全實(shí)現(xiàn)就可以了呢?答案是否定的,因?yàn)榉块g內(nèi)使用的其他功能,比如消息收發(fā)、信令收發(fā)、音頻流收發(fā),都使用到了即時(shí)通信IM與實(shí)時(shí)音視頻TRTC的能力。既然IM和TRTC都有房間管理,是否直接基于這兩個(gè)基礎(chǔ)組件就能快速實(shí)現(xiàn)呢?答案也是否定的,因?yàn)榉块g中的業(yè)務(wù)側(cè)信息,比如鏈路情況、禮物列表,主播頭像等信息和房間列表等功能,IM和TRTC不直接提供此類功能,所以在整個(gè)房間管理中,必須由業(yè)務(wù)側(cè)房間模塊(管理服務(wù)/列表服務(wù))、即時(shí)通信IM模塊(SDK/后臺(tái))、TRTC模塊(SDK/后臺(tái))三大模塊進(jìn)行組合實(shí)現(xiàn)。具體的架構(gòu)流程如下圖所示:

房間管理模塊架構(gòu)
具體實(shí)現(xiàn)

在房間管理的實(shí)現(xiàn)中會(huì)區(qū)分不同的角色,主要分為房主、聽眾兩種角色。

角色

描述

區(qū)別

房主

房間最高權(quán)限的擁有者,可以創(chuàng)建或者銷毀房間

● 角色必須為主播● 創(chuàng)建或者銷毀業(yè)務(wù)房間/IM群組/TRTC房間

聽眾

房間的參與者,也可以上麥變成主播

● 角色可以為觀眾/主播● 進(jìn)退房間

不同角色的具體實(shí)現(xiàn)流程如下:

房主

房主房間管理流程

1. 通過業(yè)務(wù)側(cè)接口創(chuàng)建相應(yīng)的房間;

2. 創(chuàng)建IM群組;

3. 進(jìn)入業(yè)務(wù)房間/IM群組/TRTC房間,與其他人進(jìn)行互動(dòng);

4. 退出IM群組/TRTC房間/業(yè)務(wù)房間;

5. 銷毀IM群組/業(yè)務(wù)房間。

聽眾

聽眾房間管理流程

1. 獲取房間列表;

2. 進(jìn)入業(yè)務(wù)房間/IM群組/TRTC房間,與其他人進(jìn)行互動(dòng);

3. 退出IM群組/TRTC房間/業(yè)務(wù)房間。

API時(shí)序

下面將結(jié)合騰訊云即時(shí)通信IM SDK與實(shí)時(shí)音視頻TRTC SDK來描述整個(gè)房間管理的API調(diào)用細(xì)節(jié),圖中IM SDK核心類為V2TIMManager,TRTC SDK核心類為TRTCCloud。

房主API調(diào)用時(shí)序:

房主房間管理API時(shí)序

聽眾API調(diào)用時(shí)序:

聽眾房間管理API時(shí)序

2)麥位管理

語聊房?jī)?nèi)的麥位一般都是有序且有限的,比如聽眾上麥一般需要經(jīng)得房主的同意后有序上麥,并且房間內(nèi)的麥位數(shù)量通常在 5-10個(gè)之間。麥位管理主要負(fù)責(zé)根據(jù)業(yè)務(wù)場(chǎng)景定義房間內(nèi)的麥位數(shù)量,以及當(dāng)前房間所有麥位的狀態(tài)管理。麥位管理主要包含上/下麥、換麥、鎖麥位、邀請(qǐng)上麥、麥位禁言等功能。

技術(shù)架構(gòu)

在麥位管理的實(shí)現(xiàn)中,主要有抱人上麥、踢人下麥、麥位禁言、麥位移動(dòng)、麥位靜音等功能。首先需要業(yè)務(wù)后臺(tái)維護(hù)一套用戶麥位列表狀態(tài)的信息,即為業(yè)務(wù)麥位服務(wù),而在用戶上麥/下麥的時(shí)候,則需要用到即時(shí)通信IM的能力,將用戶上下麥與房主同意的相關(guān)信令下發(fā)到客戶端。然后在用戶進(jìn)行語音互動(dòng)交流的時(shí)候,則需要用到實(shí)時(shí)音視頻TRTC的能力,調(diào)用TRTC SDK接口開啟語音推拉流。所以在整個(gè)麥位管理中,必須是由業(yè)務(wù)側(cè)麥位模塊(管理服務(wù)/列表服務(wù))、即時(shí)通信IM模塊(SDK/后臺(tái))、TRTC 模塊(SDK/后臺(tái))三大模塊進(jìn)行組合實(shí)現(xiàn)的。然而正因?yàn)橛脩羯消?下麥所用到的模塊比較多,任意模塊與其他模塊出現(xiàn)狀態(tài)不統(tǒng)一的時(shí)候,都會(huì)出現(xiàn)“幽靈麥”現(xiàn)象,關(guān)于“幽靈麥”后續(xù)章節(jié)會(huì)展開詳細(xì)介紹。因此每個(gè)模塊都需要按照一定的流程正確進(jìn)行,具體的架構(gòu)流程如下圖所示:

麥位管理模塊架構(gòu)
具體實(shí)現(xiàn)

在麥位管理的實(shí)現(xiàn)中會(huì)區(qū)分不同的角色,主要分為房主、聽眾兩種角色。

角色

描述

區(qū)別

房主

麥位最高權(quán)限者,負(fù)責(zé)所有麥位的管理,房主退房后會(huì)自動(dòng)解散所有麥位

● 角色必須為主播● 進(jìn)房自動(dòng)上麥● 同意/拒絕上麥申請(qǐng)● 抱人上/下麥● 管理麥位的靜音/解禁● 管理麥位的封禁/解禁

聽眾

房間內(nèi)麥位參與者,可以上下麥互動(dòng)

● 角色可以為觀眾/主播● 申請(qǐng)上/下麥

不同角色的具體實(shí)現(xiàn)流程如下:

房主

房主麥位管理流程

1. 房主創(chuàng)建并加入房間;

2. 根據(jù)房間屬性獲取到麥位列表,并主動(dòng)上麥;

3. 聽眾上麥有兩種方式,一種是聽眾主動(dòng)申請(qǐng)上麥,房主同意,另外一種是房主邀請(qǐng)聽眾上麥,聽眾同意;

4. 聽眾上麥后,與麥位上的其他人進(jìn)行互動(dòng);

5. 聽眾下麥有兩種方式,一種是聽眾主動(dòng)下麥,另外一種是房主將聽眾抱下麥;

6. 房主退出并銷毀房間;

聽眾

聽眾麥位管理流程

1. 聽眾進(jìn)入房間;

2. 聽眾獲取麥位列表;

3. 聽眾申請(qǐng)上麥,房主同意后,將上麥與麥上其他主播互動(dòng);

4. 聽眾退出房間;

API時(shí)序

以下將結(jié)合騰訊云即時(shí)通信IM SDK與實(shí)時(shí)音視頻產(chǎn)品TRTC SDK來描述整個(gè)麥位管理的API調(diào)用細(xì)節(jié),圖中IM SDK核心類為V2TIMManager,TRTC SDK核心類為TRTCCloud。

麥位管理API時(shí)序

3)音頻流管理

音頻流管理是將房間內(nèi)TRTC SDK采集到的房主/主播的聲音經(jīng)過網(wǎng)絡(luò)傳輸后,再拉流并播放給聽眾。其中拉流有兩種方案:TRTC房間訂閱拉流、轉(zhuǎn)推CDN直播拉流。

技術(shù)架構(gòu)
音頻流管理模塊架構(gòu)

1) TRTC房間訂閱拉流:通常小規(guī)模語聊房場(chǎng)景可以選擇純RTC流接入方案,技術(shù)復(fù)雜度更低,亦可體驗(yàn)到更好的實(shí)時(shí)互動(dòng)特性;

2) 轉(zhuǎn)推CDN直播拉流:由于TRTC采用UDP協(xié)議進(jìn)行音視頻數(shù)據(jù)的傳輸,而標(biāo)準(zhǔn)直播CDN則采用RTMP\HLS\FLV等協(xié)議進(jìn)行數(shù)據(jù)傳輸,所以需要將TRTC的音視頻數(shù)據(jù)旁路到直播CDN中,才能在讓觀眾通過直播CDN拉流觀看。

具體實(shí)現(xiàn)

1)RTC流訂閱模式

純RTC流接入方案易用性強(qiáng),且具備最佳的實(shí)時(shí)互動(dòng)性。如下圖所示,以麥上用戶和麥下觀眾兩個(gè)角色展示了一種最經(jīng)典的實(shí)時(shí)互動(dòng)語聊房的推拉流方案架構(gòu)。

RTC推拉流方案架構(gòu)

針對(duì)房間內(nèi)的實(shí)時(shí)流訂閱,TRTC共有兩種訂閱模式可供選擇:自動(dòng)訂閱、手動(dòng)訂閱。

自動(dòng)訂閱:默認(rèn)模式,用戶在進(jìn)入房間后會(huì)立刻接收到該房間中的音頻流,音頻會(huì)自動(dòng)播放;

手動(dòng)訂閱:用戶進(jìn)入房間后,需要手動(dòng)調(diào)用muteRemoteAudio啟動(dòng)音頻的播放。

在絕大多數(shù)場(chǎng)景下,用戶進(jìn)入房間后都會(huì)訂閱房間中所有主播的音頻流,因此TRTC默認(rèn)采用了自動(dòng)訂閱模式,以求得最佳的“秒開體驗(yàn)”。 而手動(dòng)訂閱模式則具備更好的靈活性和可定制性,用戶可以選擇性地訂閱音頻流。

2)CDN流拉取方案

CDN直播觀看,也叫 “CDN 旁路直播”。TRTC的低延時(shí)觀看能力,單房間支持的最大人數(shù)上限為10萬人。CDN觀看雖然延遲要高一些,但支持10萬人以上的并發(fā)觀看,且CDN的計(jì)費(fèi)價(jià)格相對(duì)便宜。

轉(zhuǎn)推CDN拉流示例
拉流方案對(duì)比

下面將以四種拉流方案為例,從技術(shù)難度、費(fèi)用成本、觀看效果、人數(shù)限制、應(yīng)用場(chǎng)景等維度進(jìn)行對(duì)比分析:

拉流方案

技術(shù)難度

費(fèi)用成本

觀看效果

人數(shù)限制

應(yīng)用場(chǎng)景

RTC單流

簡(jiǎn)單

中等

低延遲

10萬

互動(dòng)游戲房等

RTC混流

復(fù)雜

中等

低延遲

10萬

KTV語聊房等

CDN單流

中等

較低

中高延遲

無限制

強(qiáng)自定義布局

CDN混流

復(fù)雜

較低

中高延遲

無限制

規(guī)模并發(fā)觀看

4)錄制與審核管理

由于國(guó)內(nèi)外相關(guān)監(jiān)管政策的要求,有對(duì)語聊房音頻內(nèi)容進(jìn)行錄制存儲(chǔ)的需求。錄制與審核的相關(guān)介紹如下:

技術(shù)架構(gòu)

在錄制與審核管理中,主要有錄制、審核、用戶封禁等功能。首先需要業(yè)務(wù)后臺(tái)維護(hù)錄制相關(guān)的服務(wù),用來管理主播的回看與調(diào)用TRTC后臺(tái)或者CDN開啟錄制服務(wù),然后在TRTC后臺(tái)/CDN收到業(yè)務(wù)側(cè)的服務(wù)后,將拉到的音視頻流數(shù)據(jù)保持在數(shù)據(jù)存儲(chǔ)中心,一般保存在COS中;另外業(yè)務(wù)后臺(tái)也是需要維護(hù)審核的服務(wù),調(diào)用開啟和接收天御的審核服務(wù)與告警,如果審核確認(rèn)是違規(guī)的內(nèi)容的話,則還需用到即時(shí)通信IM的能力,通過信令通知違規(guī)的用戶下麥。具體的架構(gòu)流程如下圖所示:

錄制與審核方案架構(gòu)
具體實(shí)現(xiàn)

1)云端錄制方案

云端錄制是通過TRTC的“啞終端”的方式進(jìn)到TRTC的房間內(nèi)拉流,能對(duì)房間內(nèi)的單流或者合流進(jìn)行錄制,整體的方案可以參考官網(wǎng)文檔,業(yè)務(wù)側(cè)通過調(diào)用相關(guān)的云端錄制接口,進(jìn)行錄制。

2)CDN錄制方案

CDN錄制是通過TRTC后臺(tái)的混流轉(zhuǎn)碼接口/TRTC SDK混流轉(zhuǎn)推接口,混流轉(zhuǎn)碼轉(zhuǎn)推到騰訊云直播/第三方CDN,并通過騰訊云直播/第三方CDN的相關(guān)錄制服務(wù),進(jìn)行錄制。

3) 天御審核方案

TRTC聯(lián)合T-Sec天御,提供了實(shí)時(shí)的音視頻內(nèi)容識(shí)別與告警服務(wù),客戶在使用實(shí)時(shí)音視頻服務(wù)時(shí),支持手動(dòng)或全局自動(dòng)發(fā)起策略進(jìn)行音視頻內(nèi)容的識(shí)別和告警:

● 手動(dòng)自定義審核:客戶只需要調(diào)用天御音視頻流接口即可實(shí)時(shí)檢測(cè)音視頻流中是否出現(xiàn)違規(guī)內(nèi)容,音視頻安全審核服務(wù)會(huì)通過回調(diào)把違規(guī)信息發(fā)送給客戶指定的回調(diào) URL;

● 全局自動(dòng)審核:客戶可指定審核策略和審核流類型,TRTC云端自動(dòng)幫忙完成應(yīng)用下所有房間內(nèi)的音視頻內(nèi)容審核,并通過回調(diào)把違規(guī)信息發(fā)送給客戶指定的回調(diào) URL,無需手動(dòng)發(fā)起審核。

具體實(shí)現(xiàn)接入方案可以參考官網(wǎng)文檔。

4)封禁方案

在內(nèi)容審核服務(wù)監(jiān)測(cè)發(fā)現(xiàn)有違規(guī)內(nèi)容的時(shí)候,通過回調(diào)給業(yè)務(wù)審核的服務(wù),業(yè)務(wù)審核服務(wù)通過機(jī)器/人工再審核的方式的確定是否是違規(guī)內(nèi)容,如果確認(rèn)是違規(guī)的內(nèi)容,則通過即時(shí)通信IM后臺(tái)給違規(guī)的主播發(fā)送封禁消息,主播在收到封禁消息時(shí),停止音視頻流上行。

海外語聊技術(shù)特性與解決方案

在整個(gè)語聊技術(shù)架構(gòu)中,核心是實(shí)時(shí)音視頻通信能力。平穩(wěn)且流暢的用戶體驗(yàn),是出海語聊應(yīng)用的制勝法寶。然而,海外紛繁復(fù)雜的基礎(chǔ)設(shè)施和網(wǎng)絡(luò)條件對(duì)于實(shí)時(shí)音視頻的挑戰(zhàn)是巨大的。針對(duì)海外語聊技術(shù)特性,我們總結(jié)了幾點(diǎn)常見問題及其解決方案。

海外復(fù)雜網(wǎng)絡(luò)應(yīng)對(duì)

海外部分國(guó)家網(wǎng)絡(luò)基礎(chǔ)設(shè)施薄弱,網(wǎng)絡(luò)整體呈現(xiàn)帶寬低、延遲高、資費(fèi)貴等特性。對(duì)于海外復(fù)雜的網(wǎng)絡(luò)環(huán)境,騰訊云音視頻在全球網(wǎng)絡(luò)部署、QoS&QoE等方面均有針對(duì)性優(yōu)化措施。

騰訊云音視頻在全球70多個(gè)國(guó)家和地區(qū)部署了超過2800個(gè)CDN加速節(jié)點(diǎn),全網(wǎng)帶寬資源儲(chǔ)備高達(dá)200T+。音視頻QoS優(yōu)化針對(duì)海外入網(wǎng)環(huán)境,通過云端智能調(diào)控,確保極端網(wǎng)絡(luò)環(huán)境下引擎策略也可以配置化。云端智能流控引擎可以快速調(diào)整音頻幀長(zhǎng)、FEC比例、JitterBuffer大小等,確保適應(yīng)極端弱網(wǎng)環(huán)境,如限帶寬、高丟包、突發(fā)抖動(dòng)等場(chǎng)景。甚至針對(duì)部分地區(qū)UDP封禁的情況,可以降級(jí)至TCP實(shí)現(xiàn)互聯(lián)互通。

騰訊云全球網(wǎng)絡(luò)部署

音頻帶寬優(yōu)化策略

1) 音頻質(zhì)量動(dòng)態(tài)配置

實(shí)時(shí)音視頻TRTC提供了三種精心校調(diào)好的音質(zhì)模式:人聲模式、默認(rèn)模式、音樂模式,用來滿足各種垂直場(chǎng)景下對(duì)音質(zhì)的差異化追求。不同的音質(zhì)模式側(cè)重點(diǎn)各不相同,實(shí)際場(chǎng)景中可以根據(jù)偏好(保音質(zhì)/保流暢)選擇配置。另外,TRTC還支持在通話過程中動(dòng)態(tài)調(diào)整音頻質(zhì)量,以便讓用戶在不同網(wǎng)絡(luò)環(huán)境下均能擁有良好的聽感體驗(yàn)。

音質(zhì)模式

音質(zhì)參數(shù)

音質(zhì)說明

人聲模式

采樣率:16k;單聲道;編碼碼率:16kbps

具備最強(qiáng)的網(wǎng)絡(luò)抗性,在弱網(wǎng)環(huán)境下流暢度最佳

默認(rèn)模式

采樣率:48k;單聲道;編碼碼率:50kbps

對(duì)音樂的還原度比人聲模式要好,同時(shí)傳輸數(shù)據(jù)量比音樂模式要低很多

音樂模式

采樣率:48k;全頻帶立體聲;編碼碼率:128kbps

音頻傳輸?shù)臄?shù)據(jù)量很大,適合需要高保真?zhèn)鬏斠魳返膱?chǎng)景

2)房間內(nèi)音頻混流

在語聊房場(chǎng)景中,一般都有8個(gè)聊天主播,按每人50kpbs音頻碼率計(jì)算的話,觀眾收聽則需要400kpbs的下行帶寬的要求,往往在海外網(wǎng)絡(luò)比較差的環(huán)境中,幾乎無法正常收聽。另外400kpbs的碼率對(duì)部分低端的手機(jī)性能挑戰(zhàn)也是很大,為此我們也通過音頻混流來對(duì)下行帶寬進(jìn)行了優(yōu)化?;谀芰扛?jìng)爭(zhēng)選路的房間內(nèi)音頻混流技術(shù),在確保最終的產(chǎn)品能力和不混流對(duì)齊的情況下,能夠大幅降低用戶下行帶寬,提升弱網(wǎng)抗性。

基于能量競(jìng)爭(zhēng)選路的音頻混流方案

音頻混流回推:選擇在房間內(nèi)把上行音頻混在一起之后,再推回房間,然后用戶拉流的時(shí)候只需拉一路,就能收到8個(gè)人的聲音,這可以直接把下行帶寬的占用從400k降到50k,對(duì)用戶下行網(wǎng)絡(luò)有極大的改善。示例代碼如下:

// 創(chuàng)建 TRTCPublishTarget 對(duì)象TRTCCloudDef.TRTCPublishTarget target = new TRTCCloudDef.TRTCPublishTarget();// 混流后回推到房間target.mode = TRTCCloudDef.TRTC_PublishMixStream_ToRoom;target.mixStreamIdentity.intRoomId = Integer.parseInt(mRoomId);// 混流機(jī)器人的 userid,不能和房間內(nèi)其他用戶的 userid 重復(fù)target.mixStreamIdentity.userId = mUserId + "_mix"; // 設(shè)置轉(zhuǎn)碼后的音頻流的編碼參數(shù)(可自定義)TRTCCloudDef.TRTCStreamEncoderParam trtcStreamEncoderParam = new TRTCCloudDef.TRTCStreamEncoderParam();trtcStreamEncoderParam.audioEncodedChannelNum = 2;trtcStreamEncoderParam.audioEncodedKbps = 64;trtcStreamEncoderParam.audioEncodedCodecType = 0;trtcStreamEncoderParam.audioEncodedSampleRate = 48000;// 設(shè)置音頻混流參數(shù)TRTCCloudDef.TRTCStreamMixingConfig trtcStreamMixingConfig = new TRTCCloudDef.TRTCStreamMixingConfig();// 支持填寫空值,會(huì)自動(dòng)將所有主播的音頻混合輸出trtcStreamMixingConfig.audioMixUserList = null;// 發(fā)起混流轉(zhuǎn)推請(qǐng)求mTRTCCloud.startPublishMediaStream(target, trtcStreamEncoderParam, trtcStreamMixingConfig);

音頻混流下發(fā)單流音量:對(duì)于拉單流的用戶,能根據(jù)某個(gè)流的音量變化進(jìn)行音浪展示,而通過混流就很難分辨出來了。為此我們通過在云端混流時(shí)將發(fā)言人的userid和音量信息下發(fā)到SEI中,這樣在拉流時(shí)通過解析SEI信息,就能展示單流音量了。

private class TRTCCloudImplListener extends TRTCCloudListener {    public void onUserVoiceVolume(ArrayList userVolumes, int totalVolume) {        super.onUserVoiceVolume(userVolumes, totalVolume);        if (userVolumes != null && userVolumes.size() > 0) {            for (TRTCCloudDef.TRTCVolumeInfo user : userVolumes) {                // 可以設(shè)置適當(dāng)?shù)囊袅块撝?               if (user.volume > 10) {                    // 更新對(duì)應(yīng)麥位的音浪視圖                    updateSeatVoiceView();                    // 通過 SEI 消息發(fā)送本地音量信息                    if (user.userId.equals(mUserId)) {                        JSONObject jsonObject = new JSONObject();                        jsonObject.put("userid", user.userId);                        jsonObject.put("volume", user.volume);                        jsonObject.().getBytes();                        mTRTCCloud.sendSEIMsg(jsonObject.().getBytes(), 1);                    }                }            }        }    }}

幽靈麥預(yù)防與檢測(cè)

幽靈麥,又稱炸麥或黑麥,是指不在麥上的用戶能說話,并且其他用戶能聽到其說話的聲音。在海外用戶經(jīng)常會(huì)遇到,如果沒有合適的手段制止的話,會(huì)對(duì)其他用戶體驗(yàn)造成很大的影響。幽靈麥出現(xiàn)的根本原因是業(yè)務(wù)的麥位狀態(tài)跟TRTC房間的推拉流狀態(tài)不一致,可能存在以下幾種情況:

● 聽眾下麥麥位列表更新了,但因IM群組屬性未更新,所以未及時(shí)調(diào)用TRTC切換角色為觀眾和關(guān)閉麥克風(fēng),從而導(dǎo)致處于麥下卻還能發(fā)言;

● 聽眾下麥麥位列表更新了,但調(diào)用了TRTC切換角色接口,因網(wǎng)絡(luò)原因失敗了,從而導(dǎo)致處于麥下卻還能發(fā)言;

● APP被暴力破解,從而導(dǎo)致usersig被黑客截獲,從而能進(jìn)到TRTC房間自由發(fā)言。

應(yīng)對(duì)策略可以分為幾個(gè)步驟:權(quán)限預(yù)防、實(shí)時(shí)檢測(cè)、踢出幽靈麥用戶。

1)權(quán)限預(yù)防

通過開啟TRTC的高級(jí)權(quán)限控制可以更加細(xì)粒度地控制用戶進(jìn)房及上麥權(quán)限,從而防止幽靈麥現(xiàn)象的發(fā)生。開啟高級(jí)權(quán)限控制后,TRTC的后臺(tái)服務(wù)系統(tǒng)不僅會(huì)校驗(yàn)UserSig這一個(gè)“進(jìn)房票據(jù)”,還會(huì)校驗(yàn)一個(gè)叫做PrivateMapKey的“權(quán)限票據(jù)”,權(quán)限票據(jù)中包含了一個(gè)加密后的roomId和一個(gè)加密后的“權(quán)限位列表”。

步驟一:在TRTC控制臺(tái)中開啟高級(jí)權(quán)限控制

當(dāng)某一個(gè)SDKAppid開啟高級(jí)權(quán)限控制后,使用該SDKAppId的所有用戶都需要在TRTCParams中傳入 privateMapKey 參數(shù)才能成功進(jìn)房。

步驟二:在服務(wù)端集成計(jì)算PrivateMapKey

由于客戶端非常容易被逆向破解,從而導(dǎo)致權(quán)限控制失效,因此PrivateMapKey只適合在服務(wù)端計(jì)算再返回給您的App,絕不能在您的App端直接計(jì)算。

步驟三:服務(wù)端下發(fā)鑒權(quán)參數(shù)給客戶端

如下圖所示,當(dāng)您的服務(wù)器計(jì)算好PrivateMapKey之后,就可以在需要的時(shí)候下發(fā)給您的客戶端,SDK會(huì)在進(jìn)房、上麥兩個(gè)時(shí)刻校驗(yàn)PrivateMapKey,你可以在此時(shí)控制用戶權(quán)限。

鑒權(quán)流程示例圖

2)實(shí)時(shí)檢測(cè)幽靈麥用戶

方法一:手動(dòng)訂閱拉流檢測(cè)幽靈麥

基本原理:通過手動(dòng)訂閱模式,在收到遠(yuǎn)端用戶發(fā)布音頻流的回調(diào)中額外校驗(yàn)業(yè)務(wù)麥位狀態(tài),從而決策是否訂閱(播放)該用戶音頻流。

● onUserAudioAvailable(userId, true) 如果該用戶不在業(yè)務(wù)麥位列表中,則執(zhí)行 muteRemoteAudio(userId, true),靜音該非法用戶音頻;

● onUserAudioAvailable(userId, true) 如果該用戶存在業(yè)務(wù)麥位列表中,則執(zhí)行 muteRemoteAudio(userId, false),正常播放該用戶音頻。

方法二:音量大小回調(diào)檢測(cè)幽靈麥

基本原理:通過 TRTC 音量大小回調(diào),比對(duì)當(dāng)前上行音頻用戶列表和業(yè)務(wù)側(cè)麥位狀態(tài)列表,從而識(shí)別出不在麥上卻有上行音頻的幽靈麥。當(dāng)檢測(cè)出幽靈麥后,客戶端本地執(zhí)行靜音該用戶的遠(yuǎn)端音頻流,同時(shí)上報(bào)到服務(wù)端,服務(wù)端決策是否將該用戶踢出房間。示例代碼如下:

// 啟用音量大小提示,可自定義回調(diào)間隔mTRTCCloud.enableAudioVolumeEvaluation(500);private class TRTCCloudImplListener extends TRTCCloudListener {    // 每路音量大小的反饋回調(diào)    public void onUserVoiceVolume(ArrayList userVolumes, int totalVolume) {        super.onUserVoiceVolume(userVolumes, totalVolume);        for (TRTCCloudDef.TRTCVolumeInfo speaker : userVolumes) {            if (!speaker.userId.equals(mUserId) && speaker.volume > 0) {                ...                // 比對(duì)判斷當(dāng)前 speaker 是否在業(yè)務(wù)側(cè)麥上用戶列表中                // 若為否,判定當(dāng)前 speaker 為幽靈麥,執(zhí)行以下邏輯                ...                count++;                if (count >= 5) { // 增加容忍次數(shù)防止誤判                    // 主動(dòng)靜音幽靈麥用戶                    mTRTCCloud.muteRemoteAudio(speaker.userId, true);                    count = 0;                    ...                    // 上報(bào)幽靈麥用戶給服務(wù)端做相應(yīng)處理(踢人)                    ...                }            }        }    }}

3)踢出幽靈麥用戶

基本原理:通過TRTC后臺(tái)的移除用戶接口 RemoveUser,強(qiáng)行將幽靈麥用戶從房間內(nèi)踢出,并配合高級(jí)權(quán)限控制,從而確保該用戶無法再次進(jìn)入房間。

安全合規(guī)

騰訊云實(shí)時(shí)音視頻遵從不同國(guó)家和行業(yè)的合規(guī)性要求,除了保證所提供服務(wù)的安全性、合規(guī)性、可用性、保密性和隱私性之外,還可以滿足企業(yè)及其客戶的多項(xiàng)合規(guī)監(jiān)管需求。騰訊云實(shí)時(shí)音視頻還擁有一套獨(dú)立完整的國(guó)際站點(diǎn),海外環(huán)境部署與國(guó)內(nèi)完全隔離,數(shù)據(jù)不會(huì)回傳國(guó)內(nèi),符合海外法律法規(guī)。此外,騰訊云也通過了70項(xiàng)全球權(quán)威認(rèn)證,例如ISO 27017/27018/27701/29151、CSA STAR、NIST CSF等。

騰訊云音視頻安全合規(guī)認(rèn)證

總結(jié)與展望

本文主要介紹了語聊社交的常見場(chǎng)景與具體的實(shí)現(xiàn)方案,并且針對(duì)出??赡苡龅降奶魬?zhàn)及其解決方案進(jìn)行詳細(xì)分享,相信隨著國(guó)內(nèi)越來越多的公司出海,還會(huì)繼續(xù)遇到更多新的挑戰(zhàn),歡迎大家到評(píng)論區(qū)留言,一起討論。

標(biāo)簽: 實(shí)時(shí)音視頻 即時(shí)通信

(責(zé)任編輯:news01)
今日上?;疖囌居喥睙峋€(求上?;疖囌居喥彪娫?,流程…麻煩詳細(xì)點(diǎn))

今日上?;疖囌居喥睙峋€(求上?;疖囌居喥彪娫?,流程…麻煩詳細(xì)點(diǎn))

您好,來為大家解答以上問題。上?;疖囌居喥睙峋€,求上海火車站訂票電
08-29 05:49:17
曼城舊將:哈蘭德從不糾結(jié)于進(jìn)球,他總能保持正確的心態(tài)和行動(dòng)

曼城舊將:哈蘭德從不糾結(jié)于進(jìn)球,他總能保持正確的心態(tài)和行動(dòng)

曼城舊將:哈蘭德從不糾結(jié)于進(jìn)球,他總能保持正確的心態(tài)和行動(dòng),泰勒,福
08-29 01:02:16
一個(gè)囤茶的故事,寫滿了羅生門,各種斗智斗勇,各種小心思小盤算

一個(gè)囤茶的故事,寫滿了羅生門,各種斗智斗勇,各種小心思小盤算

買過一次,喝了感覺不錯(cuò),價(jià)格也在自己認(rèn)可的范圍之內(nèi),那么,再次復(fù)購
08-28 22:05:57
成都:144平米以上房源不再實(shí)施公證搖號(hào)

成都:144平米以上房源不再實(shí)施公證搖號(hào)

成都市住房和城鄉(xiāng)建設(shè)局成都市司法局發(fā)布關(guān)于優(yōu)化完善商品住房公證搖號(hào)
08-28 20:20:02
中國(guó)央行:截至2023年7月末,境外機(jī)構(gòu)在中國(guó)債券市場(chǎng)的托管余額為3.3萬億元

中國(guó)央行:截至2023年7月末,境外機(jī)構(gòu)在中國(guó)債券市場(chǎng)的托管余額為3.3萬億元

中國(guó)央行:截至2023年7月末,境外機(jī)構(gòu)在中國(guó)債券市場(chǎng)的托管余額為3 3萬
08-28 18:45:13
直到大雨停止(三)

直到大雨停止(三)

“live的話……我看看哦,最近排的比較滿,大場(chǎng)排到七天之后去了,只有
08-28 17:17:51
日媒稱國(guó)內(nèi)商家多次接到來自中國(guó)的騷擾電話,內(nèi)容具有攻擊性

日媒稱國(guó)內(nèi)商家多次接到來自中國(guó)的騷擾電話,內(nèi)容具有攻擊性

據(jù)日本媒體共同社報(bào)道,8月24日,日本啟動(dòng)福島核污染水排海后,國(guó)內(nèi)商
08-28 16:12:59
湖北竹溪一女子用關(guān)愛點(diǎn)亮留守兒童心靈的“燈”

湖北竹溪一女子用關(guān)愛點(diǎn)亮留守兒童心靈的“燈”

中新網(wǎng)湖北新聞8月25日電(付延峰黃東張娜)近日,家住竹溪縣城的夏正莉
08-28 14:48:20
鐵路餐車圖鑒!在火車,感受舌尖上的時(shí)代變遷

鐵路餐車圖鑒!在火車,感受舌尖上的時(shí)代變遷

暑運(yùn)期間,全國(guó)鐵路再次迎來客流高峰。如果說到“坐火車吃什么”,您首
08-28 13:03:00
戰(zhàn)鷹列陣 鐵翼飛旋,航空救援隊(duì)飛行員訓(xùn)練在昆明硬核開飛

戰(zhàn)鷹列陣 鐵翼飛旋,航空救援隊(duì)飛行員訓(xùn)練在昆明硬核開飛

央視網(wǎng)消息:近日,隨著飛行指揮員一聲令下,4架橘紅色直升機(jī)依次呼嘯
08-28 11:52:16
MSCI亞太指數(shù)上漲1.4%。

MSCI亞太指數(shù)上漲1.4%。

MSCI亞太指數(shù)上漲1 4%
08-28 09:53:50
本周4只新股申購,周一多浦樂上市

本周4只新股申購,周一多浦樂上市

本周新股發(fā)行情況速覽本周(8月28日-9月1日)A股市場(chǎng)4只新股發(fā)行,其中
08-28 08:03:29
勇者的宿命與救贖

勇者的宿命與救贖

新番導(dǎo)視的時(shí)候就有聽說這番,但一直沒看。閑來無事時(shí)突然想起來,就在
08-28 05:47:18
清熱解毒的水果(吃什么水果去火 清熱解毒的水果)

清熱解毒的水果(吃什么水果去火 清熱解毒的水果)

文章目錄1、吃什么水果可以清熱解毒有益消腫這些水果數(shù)它最厲害!2、吃
08-27 22:08:25
湖北省黃岡市2023-08-27 19:07發(fā)布暴雨橙色預(yù)警

湖北省黃岡市2023-08-27 19:07發(fā)布暴雨橙色預(yù)警

一、湖北省黃岡市天氣預(yù)報(bào)1、黃岡市氣象臺(tái)2023年08月27日19時(shí)07分發(fā)布
08-27 19:57:49
網(wǎng)紅舉報(bào)老丈人貪污

網(wǎng)紅舉報(bào)老丈人貪污

8月26日,河南焦作揚(yáng)言拋妻棄子男網(wǎng)紅否認(rèn)家暴,“我自己才是受害者”
08-27 17:43:08
前7個(gè)月原材料工業(yè)增加值同比增長(zhǎng)5.2% 整體呈現(xiàn)結(jié)構(gòu)向優(yōu)發(fā)展態(tài)勢(shì)

前7個(gè)月原材料工業(yè)增加值同比增長(zhǎng)5.2% 整體呈現(xiàn)結(jié)構(gòu)向優(yōu)發(fā)展態(tài)勢(shì)

央視網(wǎng)消息:記者從工業(yè)和信息化部了解到,今年1—7月,原材料工業(yè)整體呈
08-27 16:00:38
米店這首歌什么含義

米店這首歌什么含義

米店這首歌的含義多層次而豐富。這首歌以米店為主題,將一家米店作為一
08-27 13:51:10
每條10元至60元?賣明星行程牟利,高鐵站員工獲刑

每條10元至60元?賣明星行程牟利,高鐵站員工獲刑

據(jù)介紹,陳某等人將高鐵乘車時(shí)間、車次、乘車站、到站、座位、證件號(hào)碼
08-27 12:15:50
俄國(guó)防部:一晝夜擊落37架 基本情況講解

俄國(guó)防部:一晝夜擊落37架 基本情況講解

大家好,今日關(guān)于【俄國(guó)防部:一晝夜擊落37架】迅速上了的熱搜榜,受到
08-27 10:36:25
全球大米價(jià)格飆升!世界最大大米出口國(guó)又出手了

全球大米價(jià)格飆升!世界最大大米出口國(guó)又出手了

據(jù)央視財(cái)經(jīng)8月26日?qǐng)?bào)道,近期國(guó)際大米價(jià)格飆升,引發(fā)全球關(guān)注。印度政
08-27 08:44:51
東北生菜種植時(shí)間和方法(生菜種植時(shí)間和方法)

東北生菜種植時(shí)間和方法(生菜種植時(shí)間和方法)

導(dǎo)讀1、【特征特性】  生菜按葉片的色澤區(qū)分有綠生菜、紫生菜兩種。2
08-27 05:56:46
肇俊哲發(fā)文道歉:三連敗責(zé)任在我,今晚有點(diǎn)沖動(dòng)沒有辱罵裁判

肇俊哲發(fā)文道歉:三連敗責(zé)任在我,今晚有點(diǎn)沖動(dòng)沒有辱罵裁判

直播吧8月26日訊中超聯(lián)賽第24輪,滄州雄獅主場(chǎng)1-5慘敗北京國(guó)安。比賽中
08-26 23:19:44
農(nóng)業(yè)農(nóng)村部部署華西黃淮等地持續(xù)強(qiáng)降雨防范應(yīng)對(duì)工作

農(nóng)業(yè)農(nóng)村部部署華西黃淮等地持續(xù)強(qiáng)降雨防范應(yīng)對(duì)工作

據(jù)中央氣象臺(tái)預(yù)報(bào),8月26—28日,我國(guó)華西至黃淮一帶自西向東將出現(xiàn)強(qiáng)
08-26 20:40:57
苦苦支撐!霍利斯-杰弗森5中4砍半場(chǎng)最高15分加5板 球隊(duì)落后13分

苦苦支撐!霍利斯-杰弗森5中4砍半場(chǎng)最高15分加5板 球隊(duì)落后13分

苦苦支撐!霍利斯-杰弗森5中4砍半場(chǎng)最高15分加5板球隊(duì)落后13分,男籃,約
08-26 18:08:04
東盟三國(guó)簽署本幣交易協(xié)議,減少對(duì)美元依賴

東盟三國(guó)簽署本幣交易協(xié)議,減少對(duì)美元依賴

當(dāng)?shù)貢r(shí)間8月25日,第十屆東盟財(cái)長(zhǎng)和央行行長(zhǎng)會(huì)議在印尼首都雅加達(dá)舉辦
08-26 15:51:41
常山北明7月3日快速上漲

常山北明7月3日快速上漲

以下是常山北明在北京時(shí)間7月3日11:07分盤口異動(dòng)快照:7月3日,常山北
08-26 14:12:25
額竇炎癥狀表現(xiàn)有哪些(額頭炎是什么癥狀)

額竇炎癥狀表現(xiàn)有哪些(額頭炎是什么癥狀)

我是小前,我來為大家解答以上問題。額竇炎癥狀表現(xiàn)有哪些,額頭炎是什
08-26 12:01:21
快訊 | 贏家時(shí)尚2023年上半年總收入同比增長(zhǎng)15.36%至33.41億元,純利同比增長(zhǎng)71.57%

快訊 | 贏家時(shí)尚2023年上半年總收入同比增長(zhǎng)15.36%至33.41億元,純利同比增長(zhǎng)71.57%

財(cái)經(jīng)網(wǎng)生活訊8月25日晚,贏家時(shí)尚發(fā)布2023年半年度報(bào)告,披露公司總收
08-26 10:07:53
奧運(yùn)冠軍成母校講師!剛剛曬過畢業(yè)照……

奧運(yùn)冠軍成母校講師!剛剛曬過畢業(yè)照……

8月25日,北京大學(xué)官網(wǎng)顯示,乒乓球奧運(yùn)冠軍丁寧已擔(dān)任北京大學(xué)體育教
08-26 09:34:54

為您推薦

精彩推送