# Mediasoup
## 1、安裝CMake
- 下載地址:[https://cmake.org/download/](https://cmake.org/download/)
- 版本要求:cmake?> = 3.5
## 2、下載Mediasoup源碼
```
git clone https://github.com/versatica/libmediasoupclient.git
```
## 3、配置WebRTC
```
cmake . -Bbuild -DLIBWEBRTC_INCLUDE_PATH:PATH=D:\SUB\C\libwebrtc\src -DLIBWEBRTC_BINARY_PATH:PATH=D:\SUB\C\libwebrtc\src\out\Default\obj
```
## 4、編譯源碼
- 使用VS2019打開解決方案`libmediasoupclient\build\mediasoupclient.sln`
- 首先編譯生成ZERO\_CHECK,再編譯生成sdptransform
## 5、常見問題
> max函數問題

- **問題分析**:webrtc內部使用的min,max函數與windows頭文件的定義沖突,會引發編譯錯誤
- **解決方案**:在項目預處理器中增加宏NOMINMAX可以解決這個問題

> auto類型不明確問題
- **問題分析**:數據類型不明確
- **解決方案**:編輯文件`libmediasoupclient\\src\\Handler.cpp`,找到報錯的地方將const auto& iceServerUri改為const std::string& iceServerUri
> 警告被視為錯誤問題

- **問題分析**:出現不可忽略的警告
- **解決方案**:在項目屬性中,選擇 "配置屬性" " > c/c + + > 高級" 屬性頁。編輯 "禁用特定警告" 屬性以添加出現過的警告編號,比如:
```
4996
4101
4244
4834
4819
```
選擇 "確定" 以應用所做的更改,然后就可以順利的編譯完成了,編譯生成的靜態庫在libmediasoupclient\\build\\Release目錄下
- **補充**:項目屬性 > 配置屬性?> c/c + + > 代碼生成 > 運行庫,這項需要改為MT模式,不然后續使用靜態庫時會報錯