国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > WebRTC 教程五:WebRTC搭建視頻聊天室

WebRTC 教程五:WebRTC搭建視頻聊天室

時(shí)間:2023-07-22 09:21:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-07-22 09:21:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)

WebRTC 教程五:WebRTC搭建視頻聊天室:
這篇文章主要介紹了 WebRTC 聊天室的整體演示,以及 WebRTC 視頻聊天的功能設(shè)計(jì),代碼邏輯以及整體演示。

目錄

附上教程(1):WebRTC信令、架構(gòu)和 API

附上教程(2):WebRTC API和Leak

附上教程(3):WebRTC特性,調(diào)試方法以及相關(guān)服務(wù)器搭建方法

附上教程(4):WebRTC 聊天室設(shè)計(jì)

WebRTC 聊天室:總體演示

講者會(huì)展示整個(gè) WebRTC 聊天室應(yīng)用的 demo。在下載了源碼之后,運(yùn)行 demo 之前,首先需要使用 node 命令運(yùn)行信令服務(wù)器。之后就可以看到已經(jīng)登錄的用戶列表。

點(diǎn)擊用戶,就開(kāi)始創(chuàng)建 RTCDataChannel,并彈出請(qǐng)求用戶界面,

在對(duì)端用戶界面,就會(huì)彈出收到的聊天室請(qǐng)求內(nèi)容,用戶可以選擇接收或者拒絕請(qǐng)求。

如果用戶選擇同意接收請(qǐng)求,就會(huì)創(chuàng)建一個(gè)聊天室,兩個(gè)用戶的狀態(tài)也會(huì)從 "online" 變?yōu)?"busy"。

如果用戶想要退出,可以直接點(diǎn)擊右上角的 "Leave",即可退出聊天室,用戶狀態(tài)也會(huì)從 "busy" 變回 "online"。

一旦有用戶關(guān)閉了瀏覽器,就等同于退出登錄狀態(tài),其他用戶也不會(huì)在在線列表中看到該用戶。

講者繼續(xù)講了一些這個(gè)聊天室 demo 的限制:

LinuxC++音視頻開(kāi)發(fā)視頻:免費(fèi)】FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級(jí)開(kāi)發(fā)
【文章福利】:音視頻學(xué)習(xí)資料、視頻和學(xué)習(xí)路線圖資料、以及面試題(資料包括C/C++,Linux,F(xiàn)Fmpeg webRTC rtmp hls rtsp ffplay srs 等),免費(fèi)分享,有需要的可以加君羊領(lǐng)取哦!~學(xué)習(xí)交流君羊994289133點(diǎn)擊加入領(lǐng)取資料

WebRTC 視頻聊天: 設(shè)計(jì)

對(duì)于客戶端網(wǎng)頁(yè) UI 設(shè)計(jì),還是選擇 HTML 和 CSS 來(lái)進(jìn)行設(shè)計(jì),而對(duì)于服務(wù)端邏輯設(shè)計(jì),選擇用 JavaScript 和 WebSocket 來(lái)進(jìn)行設(shè)計(jì)。

講者介紹了這個(gè)視頻聊天應(yīng)用的一些功能:

對(duì)于客戶端的 UI 設(shè)計(jì),需要使用 CSS 和 JavaScript 來(lái)創(chuàng)建 HTML 頁(yè)面,通過(guò) Json 信息與信令服務(wù)器交互。信令服務(wù)器則需要處理用戶狀態(tài),處理用戶的回話,雙方信令轉(zhuǎn)發(fā)等功能。這些信令服務(wù)器部分的代碼可以直接使用上個(gè) WebRTC Chat Room 應(yīng)用的信令服務(wù)器代碼。

WebRTC 視頻聊天: 客戶端實(shí)現(xiàn)

服務(wù)器部分的 node.js 代碼與之前的 demo 相同,講者不再贅述。

講者展示了客戶端 app 的代碼。

一個(gè)用戶 a 向另一個(gè)用戶 b 發(fā)送請(qǐng)求后,首先服務(wù)器會(huì)判斷用戶 b 是否已在會(huì)議中,若用戶可用,則運(yùn)行 getUserMedia() API 來(lái)獲取麥克風(fēng)和相機(jī)。這些都是在 permission_camera_before_call 函數(shù)中處理的。

在獲取了麥克風(fēng)和相機(jī)權(quán)限后,就通過(guò) create_videocall_page 函數(shù)來(lái)創(chuàng)建一個(gè)動(dòng)態(tài)的視頻會(huì)議頁(yè)面,還可以顯示麥克風(fēng)和攝像頭的設(shè)備名。流建立完成后,就可以開(kāi)始創(chuàng)建 RTCPeerConnection,并通過(guò) addTrack API 來(lái)把流加入到 RTCPeerConnection 中。

對(duì)于客戶端的搭建,還需要添加 DataChannel 用于打字聊天。在 DataChannel 搭建完成后,就可以創(chuàng)建請(qǐng)求,并把客戶端用戶本地描述設(shè)置為此請(qǐng)求,最后把這個(gè)新創(chuàng)建好的請(qǐng)求發(fā)送給信令服務(wù)器,并由服務(wù)器轉(zhuǎn)發(fā)給另一個(gè)客戶端。

一旦對(duì)端用戶點(diǎn)擊接收請(qǐng)求后,就會(huì)開(kāi)始創(chuàng)建答復(fù),并設(shè)置 SDP,答復(fù) ICE 請(qǐng)求。在用戶準(zhǔn)備好后,就會(huì)在兩邊用戶頁(yè)面上彈出聊天窗口,也需要把用戶的狀態(tài)設(shè)置為"busy"。

接下來(lái)講者展示了該應(yīng)用的 demo,首先我們可以在瀏覽器中加載 index.html 頁(yè)面,并通過(guò)用戶名登錄。

在左側(cè)可以看到在線用戶列表,并點(diǎn)擊 call 發(fā)起通話,對(duì)端可以選擇接收或者拒絕。在接收后,還要在左上角允許攝像頭權(quán)限,就會(huì)彈出視頻聊天界面。

除視頻聊天界面外,還可以在右側(cè)進(jìn)行打字聊天。

WebRTC 視頻聊天:Full Demo

講者展示了該視頻聊天的總體演示。在啟動(dòng)聊天應(yīng)用前,需要先把信令服務(wù)器開(kāi)啟。

在打開(kāi) HTML 頁(yè)面之后,通過(guò)用戶名登錄進(jìn)應(yīng)用。

在成功登陸應(yīng)用后,就可以看到主界面,左側(cè)可以看到在線用戶列表??梢灾苯狱c(diǎn)擊用戶來(lái)發(fā)起聊天請(qǐng)求。

在發(fā)起聊天請(qǐng)求后,左上角會(huì)彈出攝像頭硬件授權(quán)申請(qǐng),而在接收端會(huì)彈出接收或者拒絕請(qǐng)求窗口。

在另一端接受請(qǐng)求后,就可以看到聊天室界面,其中左側(cè)為視頻畫面,右側(cè)為聊天窗口。

用戶可以在視頻畫面下方選擇關(guān)閉或開(kāi)啟攝像頭或者麥克風(fēng)。在想要退出聊天室時(shí),直接點(diǎn)擊 Leave 即可退出聊天室。

關(guān)鍵詞:視頻,教程

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉