tft每日頭條

 > 生活

 > 直播如何添加連麥功能

直播如何添加連麥功能

生活 更新时间:2024-09-28 09:58:24

直播如何添加連麥功能(直播連麥功能之打通經脈)1

既然做了直播,和觀衆互動有的時候就很必要了

那又小夥伴可能會覺得群消息聊天能夠完成互動的功能,但是群消息會随着直播房間的人數增多而變多,主播查看到有效消息的可能性就會降低,所以「連麥功能」可能會随着業務需求而添加進來。

那麼本篇文章就來說下,集成完直播功能後,如何再集成連麥功能。

本篇旨在打通經脈,純思想級别的,但是如果你現在項目着急,想粘貼複制一下就能完事,那本篇文章就不太适合了。建議直接看「小直播」官方demo。

好了,還是按照昨天的方式,一步一步的看吧~

查看騰訊雲官方文檔

查看官網連麥文檔

同樣,為什麼推薦看官方的連麥文檔,是因為隻有熟悉了官方的這些指南,我們再編寫邏輯的時候才能有據可依,否則就是瞎頭蒼蠅到處亂撞。

直播如何添加連麥功能(直播連麥功能之打通經脈)2

連麥的整個流程

整體的内部流程就是:

1、把發起直播的人稱為`大主播`,把想要連麥的人稱為`小主播` 對應到上面的圖裡面,用戶A 則為`大主播`,用戶B 為`小主播` 2、`大主播`首先進行推流,推出的流「雲加速」處理後成為 `RTMP_ACC`格式的流 這種流速度更快,延遲更低,`小主播`拉取`RTMP_ACC`的流,并且開始推流。 3、`小主播`推出的流「雲加速」處理成為`RTMP_ACC`格式的流,連麥成立後 `大主播`拉取`小主播`推出來的流,這樣雙方都能看到彼此的流 4、`大主播`推出的流與`小主播`推出的流進行混流之後,經過處理,呈現給觀衆端 FLV/HLS 格式速度更快,觀衆端觀看的延遲性更低

搞清楚這個流程之後,就可以開始做連麥的功能了。

開始上手

在上手之前,需要先購買連麥的服務,否則不能使用。

官方解釋:由于連麥功能會使用到高速專線來降低音視頻傳輸延遲,這部分功能需要額外購買套餐包才能開通,否則移動直播的各端 SDK 隻能使用雲直播的普通服務(推流和拉流),并不能開啟連麥功能。所以,隻有等公司決定了,才能搞,否則就隻能理論走一走了。

官方的Step10. 觀衆與主播連麥中,把具體的細節都描述出來了,這裡截下圖:

直播如何添加連麥功能(直播連麥功能之打通經脈)3

連麥操作流程

我們要做的就是此項,需要注意的是MLVBLiveRoom 在設計上最多支持10人同時連麥,但出于兼容低端 Android 終端和實際體驗效果的考慮,建議将同時連麥人數控制在6人以下。

拆分細節

騰訊雲中提供了一個 MLVBLiveRoom 用來處理各種情況,「小直播」的 demo 中提供了MLVBLiveRoom 接口的實現類: MLVBLiveRoomImpl ,我們使用這個實現類來完成下面的九項操作

第一、小主播發起連麥請求(圖中的第一步)

而我們可以利用 MLVBLiveRoom.requestJoinAnchor() 方法向主播端發起請求

第二、主播端接受小主播的連麥請求(圖中的第二、三步)

觀衆發過來連麥請求,會觸發 onRequestJoinAnchor() 回調的通知,通過調用MLVBLiveRoom.responseJoinAnchor() 方法來确定接受連麥請求

第三、小主播端收到主播的确定信息,開啟本地預覽模式,并且開始推流(圖中的第四、五、六步)

IMLVBLiveRoomListener.RequestJoinAnchorCallback() 中會有主播是否同意連麥的結果,如果主播同意,調用 startLocalPreview() 開啟本地攝像頭,并調用 joinAnchor() 開始推流

第四、主播收到小主播的流,并展示(圖中第七、八、九步)

小主播進入連麥狀态,并且開始推流,那麼大主播會收到 IMLVBLiveRoomListener.onAnchorEnter()的回調,通過 startRemoteView() 就能看到小主播的畫面

需要注意的是:

大主播端可以同時接入 <10 個的連麥,但是由于手機性能要求,最大最好不要超過 6 個連麥者

所以當大主播這邊的連麥人太多的話,kickoutJoinAnchor() 可以踢掉一連麥的小主播,小主播這邊則可以通過 quitJoinAnchor() 自己退出連麥狀态。


好,上邊基本上就把連麥中的步驟給列了一下。但是實際開發中客戶端同學可能還是一臉懵逼。因為連麥的開發是和後端同學一起協同的。

下面列一下後端同學需要處理的事項

直播如何添加連麥功能(直播連麥功能之打通經脈)4

下面再分别簡述下

* 直播開始後,主播的推流地址 * 直播開始後,觀衆端拉去主播流地址 * 小主播申請連麥成功後,因為需要推流,故需要小主播的推流地址 * 小主播推流成功後,大主播需要看到小主播的流,故需要拉取小主播的流地址,這個流是加速流,避免延遲 * 小主播推流成功後,為避免延遲,小主播也要将之前的播放流切換成為大主播流的加速流 * 大主播、小主播連麥成功後,觀衆端要看到兩者合并的流,這個流就是混流地址,并且需要處理成為FLV/HLS 格式的流

這六個流是需要後端處理的,客戶端同學不要自己搞啊~


總結

結合着後端同學提供的六個流和上方的 四大步驟(9個小步驟),基本上就能将連麥功能開發出來了,具體的細節這篇文章就不再介紹了,騰訊雲提供的「小直播」的 demo 中已經将直播相關的代碼寫的很清楚了

小直播github地址

但是如果仍然有問題,那麼可以私信我。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved