MixedReality-WebRTC 是一個函式庫集合,可協助混合實境應用程式開發人員將點對點即時音訊和視訊通訊整合到他們的應用程式中並改善他們的協作體驗。
MixedReality-WebRTC 是混合實境共享團隊開發和維護的儲存庫集合的一部分。
MR-WebRTC 已被棄用。我們不再向它投入開發資源、接受拉取請求或計劃來替代它。
NuGet(C++、C#)和 UPM (Unity) 軟體包可用於穩定版本( release/*
分支)。有關詳細信息,請參閱 GitHub 上的發布頁面或下載文件頁面。
注意: master
分支可能包含最新穩定版本中的重大 API 變更。因此,不能保證它可以與 NuGet 套件一起使用,因為 NuGet 套件僅適用於穩定版本。特別是,如果從release/*
分支複製,Unity庫腳本只能保證與NuGet套件相容,儘管強烈建議使用UPM套件。
release/2.0
分支包含 API 的最新穩定版本,從中發布 NuGet 和 UPM 套件。
master
分支包含最新的開發成果。我們已經小心地保持這個分支處於相當乾淨的狀態(分支可以構建,測試通過)。然而,與最新版本相比, master
分支包含 API 重大更改,因此與 NuGet/UPM 套件不相容,應從原始程式碼建置(請參閱從原始程式碼建置文件)。
官方文件託管在 https://microsoft.github.io/MixedReality-WebRTC/。
使用者手冊包含項目各個庫的總體概述以及有關如何使用它們的一些教程。
提供了適用於 C# 函式庫和 Unity 整合的 API 參考。
整體架構如下:
圖書館 | 郎 | 描述 |
---|---|---|
mrwebrtc | C/C++ | 本機 C/C++ 函式庫為 Google 的底層 WebRTC 實作提供低階介面。與 Google 實作 ( PeerConnection ) 公開的 API 相比,目前的介面經過簡化,消除了設定和配置的負擔。它還嘗試防止 UWP 包裝器出現常見線程錯誤。該程式庫公開了純 C API,可以輕鬆整合到任何 C/C++ 應用程式中。 |
Microsoft.MixedReality.WebRTC | C#7.3 | C# .Net Standard 2.0 庫提供與本機 C 庫相同的 API 的訪問,並公開了熟悉的 C# 概念,例如async / await 和Task 。 |
Microsoft.MixedReality.WebRTC.Unity | C#7.3 | Unity3D 整合 - 一組幾乎無需設定的 Unity MonoBehaviour 元件,可實現快速原型設計並簡化與現有應用程式的整合。 |
Microsoft.MixedReality.WebRTC.Unity.Examples | C#7.3 | Unity3D 範例展示了點對點視訊聊天應用程式等典型使用場景。 |
MixedReality-WebRTC 目前可用於 Windows 10 桌面版和 UWP(無論是否附有 Unity)以及 Android(僅限 Unity)。
注意- 在此儲存庫的以下內容和其他位置中,術語「Win32」用作「Windows 桌面」(用於桌面應用程式開發的歷史 Windows API)的同義詞,與「Windows UWP」API 相對。但是,此專案不正式支援早於 Windows SDK 17134(2018 年 4 月更新,1803)的 Windows 10 的 Microsoft Windows 版本。特別是,明確不支援舊版的 Windows(Windows 7、Windows 8 等)。
該儲存庫遵循 Pitchfork 佈局,試圖標準化其層次結構:
bin/ # Binary outputs (generated)
build/ # Intermediate build artifacts (generated)
docs/ # Documentation sources
+ manual/ # User manual sources
examples/ # Examples of use and sample apps
external/ # Third-party external dependencies (git submodules)
libs/ # Source code for the individual libraries
tests/ # Source code for feature tests
tools/ # Utility scripts
+ build/ # Build scripts for the various platforms
+ android/ # Android Studio project to build libmrwebrtc.so
+ libwebrtc/ # Android build scripts for Google's WebRTC library
+ mrwebrtc/ # Windows build tools to build mrwebrtc.dll
+ ci/ # CI Azure pipelines
位於儲存庫根目錄的Microsoft.MixedReality.WebRTC.sln
Visual Studio 2019 解決方案包含多個專案:
mrwebrtc
,可以編譯:mrwebrtc-win32
項目的 Windows 桌面mrwebrtc-uwp
項目的 UWPmrwebrtc-win32-tests
Microsoft.MixedReality.WebRTC
Microsoft.MixedReality.WebRTC.Tests
Microsoft.MixedReality.WebRTC.TestAppUWP
,它透過簡單的視訊聊天應用程式演示音訊/視訊/資料通訊。注意- 目前,由於 CI 限制,一些專案已降級到 VS 2017,因為master
和release/1.0
分支構建的 Google M71 里程碑不支援 VS 2019,並且 Azure DevOps CI 代理程式不支援多個 Visual Studio 版本同一個代理程式。這最終將恢復到 VS 2019(參見#14)。
請參閱使用者手冊中有關從原始碼建置的部分。
VideoRecording
或VideoConferencing
。如果WebcamSrouce.FormatMode = Automatic
(預設),則會在 Unity 整合層中自動處理(請參閱此處),但如果直接使用 C# 程式庫,則必須手動處理。screenDuplication
受限能力,第三方應用程式無法取得該能力。簡而言之,MRC 不適用於共享應用程式。這是作業系統的限制。PreferredVideoCodec = "H264"
來利用裝置上存在的硬體編碼器;使用 VP8 或 VP9 編解碼器等軟體編碼非常消耗 CPU 資源,強烈建議不要這樣做。 目前版本是公共預覽版,包含已知問題:
Microsoft.MixedReality.WebRTC.Native
的NuGet 套件(v1.x) 包含來自Google 儲存庫的一些WebRTC 標頭,這些標頭不隨任何NuGet 套件本身一起提供,而是需要克隆此儲存庫及其依賴項(參見#123)。此外,眾所周知,WebRTC 核心實現的偵錯配置在大多數裝置(包括一些高階 PC)上都會出現一些效能問題。使用核心 WebRTC 實現的 Release 配置通常可以防止這種情況,並且強烈建議在不偵錯時使用。
該專案採用了微軟開源行為準則。有關詳細信息,請參閱行為準則常見問題解答或聯繫 [email protected] 提出任何其他問題或意見。
MixedReality-WebRTC 是基於 Google 提供的 WebRTC 實作建置。與此實施相關的安全問題和錯誤應報告給 Google。
與 MixedReality-WebRTC 本身或 WebRTC UWP SDK 相關的安全性問題和錯誤應透過電子郵件私下報告給 Microsoft 安全回應中心 (MSRC) [email protected]。您應該會在 24 小時內收到回覆。如果您由於某種原因沒有這樣做,請透過電子郵件跟進,以確保我們收到您的原始訊息。可以在安全技術中心找到更多信息,包括 MSRC PGP 金鑰。