WebRTC音視頻開發(fā):React+Flutter+Go實(shí)戰(zhàn)
定 價(jià):99 元
叢書名:實(shí)戰(zhàn)
- 作者:亢少軍
- 出版時(shí)間:2020/9/1
- ISBN:9787111664468
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN929.53
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書系統(tǒng)介紹WebRTC技術(shù)的原理與應(yīng)用,主要內(nèi)容包括:WebRTC技術(shù)發(fā)展歷史、應(yīng)用場(chǎng)景、整體架構(gòu),WebRTC通話原理,Web開發(fā)環(huán)境搭建,HTML5項(xiàng)目簡(jiǎn)介,訪問設(shè)備的設(shè)置,音視頻設(shè)備的設(shè)置,音視頻的錄制,結(jié)合React+Flutter+Go技術(shù)開發(fā)音視頻應(yīng)用的案例。
前言
第一篇 基本概念
第1章 WebRTC概述2
1.1 WebRTC是什么2
1.2 WebRTC整體架構(gòu)4
第2章 WebRTC通話原理7
2.1 概述7
2.2 媒體協(xié)商8
2.3 網(wǎng)絡(luò)協(xié)商11
2.4 連接建立的流程15
第二篇 基礎(chǔ)應(yīng)用
第3章 HTML5示例工程準(zhǔn)備18
3.1 開發(fā)環(huán)境搭建18
3.1.1 Node安裝18
3.1.2 VSCode安裝19
3.2 新建示例工程20
3.2.1 package.json配置21
3.2.2 babel支持24
3.2.3 webpack配置24
3.2.4 首頁模板文件26
3.2.5 全局樣式27
3.2.6 入口文件28
3.2.7 主組件及路由28
第4章 訪問設(shè)備31
4.1 概述31
4.2 獲取用戶媒體數(shù)據(jù)32
4.3 打開攝像頭33
4.4 打開麥克風(fēng)35
4.5 截取視頻38
4.6 共享屏幕41
4.7 視頻濾鏡45
第5章 音視頻設(shè)置49
5.1 概述49
5.2 分辨率概述50
5.3 分辨率設(shè)置51
5.4 音量檢測(cè)57
5.5 設(shè)備枚舉60
5.6 設(shè)置綜合示例67
第6章 媒體流與軌道77
6.1 概述77
6.2 媒體流78
6.3 MediaStreamTrack79
6.4 流與軌道API測(cè)試81
6.5 捕獲Video媒體流85
6.6 捕獲Canvas媒體流88
6.6.1 瀏覽器兼容性88
6.6.2 創(chuàng)建畫布88
6.6.3 Canvas坐標(biāo)系88
6.6.4 繪制API89
6.6.5 畫板示例90
第7章 媒體錄制95
7.1 媒體錄制原理95
7.1.1 創(chuàng)建錄制對(duì)象95
7.1.2 常用API97
7.1.3 錄制事件97
7.2 錄制音頻97
7.3 錄制視頻103
7.3.1 約束條件的區(qū)別103
7.3.2 播放器的區(qū)別103
7.3.3 miniType的區(qū)別103
7.3.4 錄制視頻示例104
7.4 錄制屏幕109
7.5 錄制Canvas113
第8章 連接建立118
8.1 概述118
8.2 連接建立的過程119
8.3 連接建立示例122
8.3.1 視頻清晰度自適應(yīng)130
8.3.2 提議/應(yīng)答信息131
8.3.3 Candidate信息131
8.4 將Video發(fā)送至遠(yuǎn)端132
8.5 流方式同步白板138
第9章 數(shù)據(jù)通道146
9.1 概述146
9.2 數(shù)據(jù)通道的概念147
9.3 發(fā)送文本消息147
9.4 發(fā)送文件154
9.4.1 FileReader155
9.4.2 讀取數(shù)據(jù)156
9.4.3 發(fā)送文件示例157
第10章 App示例工程準(zhǔn)備167
10.1 Windows環(huán)境搭建167
10.2 MacOS環(huán)境搭建173
10.3 App方案選取178
10.4 Flutter示例工程178
10.5 權(quán)限設(shè)置184
10.5.1 iOS平臺(tái)設(shè)置184
10.5.2 Android平臺(tái)設(shè)置184
10.6 項(xiàng)目配置185
10.7 入口程序186
第11章 App音視頻技術(shù)189
11.1 概述189
11.2 GetUserMedia190
11.3 屏幕共享195
11.4 控制設(shè)備200
11.5 連接建立206
11.5.1 媒體約束206
11.5.2 連接約束207
11.5.3 SDP約束207
11.5.4 手機(jī)旋轉(zhuǎn)方向207
11.5.5 連接建立示例207
11.6 數(shù)據(jù)通道215
第三篇 綜合案例
第12章 一對(duì)一視頻通話總體架構(gòu)224
12.1 通話流程224
12.2 技術(shù)框架226
12.3 WebSocket226
12.4 信令設(shè)計(jì)228
第13章 服務(wù)器端實(shí)現(xiàn)230
13.1 Go開發(fā)環(huán)境搭建230
13.1.1 Windows環(huán)境搭建230
13.1.2 MacOS環(huán)境搭建231
13.2 開發(fā)工具232
13.3 后端工程介紹232
13.3.1 TURN服務(wù)器運(yùn)行232
13.3.2 信令服務(wù)器目錄233
13.4 依賴庫管理234
13.5 工具庫235
13.6 項(xiàng)目配置文件237
13.7 入口程序238
13.8 Socket服務(wù)240
13.9 P2P信令服務(wù)244
13.10 用戶和會(huì)話信息248
13.11 房間管理及信令處理248
13.11.1 房間管理249
13.11.2 信令處理249
13.11.3 合并邏輯并測(cè)試252
第14章 Web端實(shí)現(xiàn)258
14.1 登錄組件258
14.2 本地視頻組件259
14.3 遠(yuǎn)端視頻組件262
14.4 信令實(shí)現(xiàn)263
14.5 P2P客戶端278
14.6 視頻通話測(cè)試285
第15章 App端實(shí)現(xiàn)287
15.1 登錄組件287
15.2 生成Id290
15.3 約束條件291
15.4 請(qǐng)求TurnServer292
15.5 ICE配置293
15.6 封裝WebSocket294
15.7 定義狀態(tài)297
15.8 信令實(shí)現(xiàn)298
15.9 P2P客戶端312
15.10 整體測(cè)試318