MixedReality-WebRTC คือชุดของไลบรารีที่ช่วยให้นักพัฒนาแอปความเป็นจริงผสมสามารถรวมการสื่อสารด้วยเสียงและวิดีโอแบบเรียลไทม์แบบเพียร์ทูเพียร์เข้ากับแอปพลิเคชันของตน และปรับปรุงประสบการณ์การทำงานร่วมกัน
MixedReality-WebRTC เป็นส่วนหนึ่งของคอลเลกชันพื้นที่เก็บข้อมูลที่พัฒนาและดูแลโดยทีม Mixed Reality Sharing
MR-WebRTC เลิกใช้งานแล้ว เราจะไม่มอบทรัพยากรในการพัฒนา การรับคำขอดึงข้อมูล หรือการวางแผนการทดแทนอีกต่อไป
แพ็คเกจ NuGet (C++, C#) และ UPM (Unity) พร้อมใช้งานสำหรับการเผยแพร่ที่เสถียร (สาขา release/*
) ดูหน้าเผยแพร่บน GitHub หรือหน้าดาวน์โหลดเอกสารเพื่อดูรายละเอียด
หมายเหตุ : สาขา master
อาจมีการเปลี่ยนแปลง API ที่ไม่สมบูรณ์จากรีลีสที่เสถียรล่าสุด จึงไม่รับประกันว่าจะใช้งานได้กับแพ็คเกจ NuGet ซึ่งมีเฉพาะรุ่นที่เสถียรเท่านั้น โดยเฉพาะอย่างยิ่ง สคริปต์ไลบรารี Unity รับประกันว่าจะเข้ากันได้กับแพ็คเกจ NuGet เท่านั้นหากคัดลอกมาจากสาขา release/*
แม้ว่าขอแนะนำอย่างยิ่งให้ใช้แพ็คเกจ UPM แทนก็ตาม
สาขา release/2.0
มี API เวอร์ชันเสถียรล่าสุด ซึ่งมีการเผยแพร่แพ็คเกจ NuGet และ UPM
สาขา master
ประกอบด้วยการพัฒนาล่าสุด ได้รับการดูแลเพื่อให้สาขานี้อยู่ในสภาพที่ค่อนข้างสะอาด (สามารถสร้างสาขาได้ และผ่านการทดสอบ) อย่างไรก็ตาม สาขา master
มีการเปลี่ยนแปลง API ที่เสียหายเมื่อเปรียบเทียบกับรีลีสล่าสุด ดังนั้นจึงเข้ากันไม่ได้กับแพ็คเกจ NuGet/UPM และควรสร้างจากแหล่งที่มาแทน (ดูเอกสารประกอบการสร้างจากแหล่งที่มา)
เอกสารอย่างเป็นทางการโฮสต์อยู่ที่https://microsoft.github.io/MixedReality-WebRTC/
คู่มือผู้ใช้ประกอบด้วยภาพรวมทั่วไปของไลบรารีต่างๆ ของโปรเจ็กต์และบทช่วยสอนบางส่วนเกี่ยวกับวิธีการใช้งาน
การอ้างอิง API พร้อมใช้งานสำหรับไลบรารี C# และการผสานรวม Unity
สถาปัตยกรรมโดยรวมมีดังนี้:
ห้องสมุด | หรั่ง | คำอธิบาย |
---|---|---|
mrwebrtc | ซี/ซี++ | ไลบรารี C/C++ แบบเนทีฟมอบอินเทอร์เฟซระดับต่ำสำหรับการใช้งาน WebRTC พื้นฐานจาก Google เมื่อเปรียบเทียบกับ API ที่แสดงโดยการใช้งานของ Google ( PeerConnection ) อินเทอร์เฟซปัจจุบันจะง่ายขึ้นเพื่อขจัดภาระในการตั้งค่าและการกำหนดค่า นอกจากนี้ยังพยายามป้องกันข้อผิดพลาดในการเธรดทั่วไปด้วยตัวห่อ UWP ไลบรารีนี้เปิดเผยเป็น C API บริสุทธิ์ที่ผสานรวมเข้ากับแอปพลิเคชัน C/C++ ได้อย่างง่ายดาย |
Microsoft.MixedReality.WebRTC | ซี # 7.3 | ไลบรารี C# .Net Standard 2.0 ให้การเข้าถึง API เดียวกันกับไลบรารี C ดั้งเดิม ซึ่งเปิดเผยด้วยแนวคิด C# ที่คุ้นเคย เช่น async / await และ Task |
Microsoft.MixedReality.WebRTC.Unity | ซี # 7.3 | การบูรณาการ Unity3D - ชุดส่วนประกอบ Unity MonoBehaviour โดยแทบไม่ต้องตั้งค่าใดๆ เลย เพื่อให้สามารถสร้างต้นแบบได้อย่างรวดเร็ว และลดความซับซ้อนในการผสานรวมเข้ากับแอปที่มีอยู่ |
Microsoft.MixedReality.WebRTC.Unity.Examples | ซี # 7.3 | ตัวอย่าง Unity3D นำเสนอสถานการณ์การใช้งานทั่วไป เช่น แอปวิดีโอแชทแบบเพียร์ทูเพียร์ |
ปัจจุบัน MixedReality-WebRTC พร้อมใช้งานสำหรับ Windows 10 Desktop และ UWP โดยมีหรือไม่มี Unity และ Android (Unity เท่านั้น)
หมายเหตุ - ในส่วนต่อไปนี้และที่อื่นๆ ในพื้นที่เก็บข้อมูลนี้ คำว่า "Win32" ถูกใช้เป็นคำพ้องสำหรับ "Windows Desktop" ซึ่งเป็น Windows API ในอดีตสำหรับการพัฒนาแอปพลิเคชันบนเดสก์ท็อป และตรงข้ามกับ API "Windows UWP" อย่างไรก็ตาม Microsoft Windows เวอร์ชันเก่ากว่า Windows 10 ที่มี Windows SDK 17134 (อัปเดตเดือนเมษายน 2018, 1803) ไม่ได้รับการสนับสนุนอย่างเป็นทางการสำหรับโปรเจ็กต์นี้ โดยเฉพาะอย่างยิ่ง 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
mrwebrtc-uwp
mrwebrtc-win32-tests
Microsoft.MixedReality.WebRTC
Microsoft.MixedReality.WebRTC.Tests
Microsoft.MixedReality.WebRTC.TestAppUWP
ที่ใช้ WPF และ XAML ซึ่งสาธิตการสื่อสารด้วยเสียง / วิดีโอ / ข้อมูลผ่านแอปวิดีโอแชทธรรมดา หมายเหตุ - ในปัจจุบันเนื่องจากข้อจำกัดของ CI บางโปรเจ็กต์จึงถูกดาวน์เกรดเป็น VS 2017 เนื่องจากเหตุการณ์สำคัญของ Google M71 ซึ่งเป็นเป้าหมาย master
และสาขา release/1.0
ที่กำลังสร้างขึ้นไม่รองรับ VS 2019 และเอเจนต์ Azure DevOps CI ไม่รองรับ Visual Studio หลายเวอร์ชันบน ตัวแทนเดียวกัน สิ่งนี้จะถูกเปลี่ยนกลับเป็น VS 2019 ในที่สุด (ดู #14)
ดูส่วนคู่มือผู้ใช้เกี่ยวกับอาคารจากแหล่งที่มา
VideoRecording
หรือ VideoConferencing
สิ่งนี้จะได้รับการจัดการโดยอัตโนมัติใน Unity Integration Layer (ดูที่นี่) หาก WebcamSrouce.FormatMode = Automatic
(ค่าเริ่มต้น) แต่จะต้องได้รับการจัดการด้วยตนเองหากใช้ไลบรารี C# โดยตรงscreenDuplication
ซึ่ง แอปพลิเคชันบุคคลที่สามไม่สามารถรับได้ สรุปคือ MRC ไม่พร้อมใช้งานสำหรับแอปที่แชร์ นี่เป็นข้อจำกัดของระบบปฏิบัติการPreferredVideoCodec = "H264"
เพื่อใช้ตัวเข้ารหัสฮาร์ดแวร์ที่มีอยู่ในอุปกรณ์ การเข้ารหัสซอฟต์แวร์ด้วยตัวแปลงสัญญาณ เช่น VP8 หรือ VP9 ต้องใช้ CPU มากและไม่สนับสนุนอย่างยิ่ง เวอร์ชันปัจจุบันเป็นตัวอย่างสาธารณะซึ่งมีปัญหาที่ทราบ:
Microsoft.MixedReality.WebRTC.Native
มีส่วนหัว WebRTC บางส่วนจากพื้นที่เก็บข้อมูลของ Google ซึ่งไม่ได้จัดส่งมาพร้อมกับแพ็คเกจ NuGet ใด ๆ เลย แต่จำเป็นต้องทำการโคลนพื้นที่เก็บข้อมูลนี้และการขึ้นต่อกันของพื้นที่เก็บข้อมูลแทน (ดู #123)นอกจากนี้ เป็นที่ทราบกันว่าการกำหนดค่า Debug ของการใช้งานหลัก WebRTC มีปัญหาด้านประสิทธิภาพบางประการบนอุปกรณ์ส่วนใหญ่ รวมถึงพีซีระดับไฮเอนด์บางเครื่องด้วย การใช้การกำหนดค่า Release ของการใช้งาน WebRTC หลักมักจะป้องกันสิ่งนี้ และเราขอแนะนำอย่างยิ่งเมื่อไม่ได้แก้ไขจุดบกพร่อง
โครงการนี้ได้นำหลักจรรยาบรรณของ Microsoft Open Source มาใช้ สำหรับข้อมูลเพิ่มเติม โปรดดูคำถามที่พบบ่อยเกี่ยวกับจรรยาบรรณหรือติดต่อ [email protected] หากมีคำถามหรือความคิดเห็นเพิ่มเติม
MixedReality-WebRTC สร้างขึ้นจากการใช้งาน WebRTC ที่ Google มอบให้ ควรรายงานปัญหาด้านความปลอดภัยและข้อบกพร่องที่เกี่ยวข้องกับการใช้งานนี้ไปยัง Google
ปัญหาด้านความปลอดภัยและข้อบกพร่องที่เกี่ยวข้องกับ MixedReality-WebRTC หรือ WebRTC UWP SDK ควรรายงานแบบส่วนตัวทางอีเมลไปยัง Microsoft Security Response Center (MSRC) [email protected] คุณควรได้รับการตอบกลับภายใน 24 ชั่วโมง หากคุณไม่ทำเช่นนั้นด้วยเหตุผลบางประการ โปรดติดตามผลทางอีเมลเพื่อให้แน่ใจว่าเราได้รับข้อความต้นฉบับของคุณ ข้อมูลเพิ่มเติม รวมถึงคีย์ MSRC PGP สามารถพบได้ใน Security TechCenter