MixedReality-WebRTC adalah kumpulan perpustakaan untuk membantu pengembang aplikasi realitas campuran mengintegrasikan komunikasi audio dan video real-time peer-to-peer ke dalam aplikasi mereka dan meningkatkan pengalaman kolaboratif mereka.
MixedReality-WebRTC adalah bagian dari kumpulan repositori yang dikembangkan dan dikelola oleh tim Mixed Reality Sharing.
MR-WebRTC sudah tidak digunakan lagi. Kami tidak lagi memberikan sumber daya pengembangan padanya, menerima permintaan penarikan, atau merencanakan penggantinya.
Paket NuGet (C++, C#) dan UPM (Unity) tersedia untuk rilis stabil ( release/*
cabang). Lihat halaman Rilis di GitHub atau halaman Unduh dokumentasi untuk detailnya.
Catatan : Cabang master
mungkin berisi perubahan API yang dapat menyebabkan gangguan dari rilis stabil terbaru. Oleh karena itu, tidak ada jaminan bahwa paket ini dapat berfungsi dengan paket NuGet, yang hanya tersedia untuk rilis stabil. Secara khusus, skrip perpustakaan Unity hanya dijamin kompatibel dengan paket NuGet jika disalin dari cabang release/*
, meskipun sangat disarankan untuk menggunakan paket UPM sebagai gantinya.
Cabang release/2.0
berisi versi stabil terbaru API, tempat paket NuGet dan UPM diterbitkan.
Cabang master
berisi perkembangan terkini. Kehati-hatian telah dilakukan untuk menjaga cabang ini dalam keadaan cukup bersih (cabang dapat dibangun, pengujian lulus). Namun cabang master
berisi perubahan yang dapat menyebabkan gangguan API dibandingkan dengan rilis terbaru, dan oleh karena itu tidak kompatibel dengan paket NuGet/UPM dan sebaiknya dibuat dari sumber (lihat dokumentasi Membangun dari sumber).
Dokumentasi resmi dihosting di https://microsoft.github.io/MixedReality-WebRTC/.
Panduan Pengguna berisi gambaran umum tentang berbagai perpustakaan proyek dan beberapa tutorial tentang cara menggunakannya.
Referensi API tersedia untuk perpustakaan C# dan integrasi Unity.
Arsitektur keseluruhannya adalah sebagai berikut:
Perpustakaan | Lang | Keterangan |
---|---|---|
mrwebrtc | C/C++ | Pustaka C/C++ asli yang menyediakan antarmuka tingkat rendah ke implementasi WebRTC yang mendasari dari Google. Dibandingkan dengan API yang diekspos oleh implementasi Google ( PeerConnection ), antarmuka saat ini disederhanakan untuk menghilangkan beban penyiapan dan konfigurasi. Ia juga mencoba mencegah kesalahan threading umum dengan pembungkus UWP. Ekspos perpustakaan ini adalah C API murni yang mudah diintegrasikan ke dalam aplikasi C/C++ apa pun. |
Microsoft.MixedReality.WebRTC | C#7.3 | Pustaka C# .Net Standard 2.0 menyediakan akses ke API yang sama dengan pustaka C asli, diekspos dengan konsep C# yang sudah dikenal seperti async / await dan Task . |
Microsoft.MixedReality.WebRTC.Unity | C#7.3 | Integrasi Unity3D - sekumpulan komponen Unity MonoBehaviour yang hampir tidak memerlukan penyiapan, untuk memungkinkan pembuatan prototipe cepat dan menyederhanakan integrasi ke dalam aplikasi yang sudah ada. |
Microsoft.MixedReality.WebRTC.Unity.Examples | C#7.3 | Sampel Unity3D menampilkan skenario penggunaan umum seperti aplikasi obrolan video peer-to-peer. |
MixedReality-WebRTC saat ini tersedia untuk Desktop Windows 10 dan UWP, dengan atau tanpa Unity, dan Android (khusus Unity).
Catatan - Di bawah ini dan di tempat lain dalam repositori ini, istilah "Win32" digunakan sebagai sinonim untuk "Windows Desktop", API Windows historis untuk pengembangan aplikasi Desktop, dan berlawanan dengan API "Windows UWP". Namun versi Microsoft Windows yang lebih lama dari Windows 10 dengan Windows SDK 17134 (Pembaruan April 2018, 1803) tidak didukung secara resmi untuk proyek ini. Secara khusus, versi Windows yang lebih lama (Windows 7, Windows 8, dll.) secara eksplisit tidak didukung.
Repositori ini mengikuti Tata Letak Pitchfork dalam upaya untuk membakukan hierarkinya:
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
Solusi Microsoft.MixedReality.WebRTC.sln
Visual Studio 2019 yang terletak di akar repositori berisi beberapa proyek:
mrwebrtc
, yang dapat dikompilasi:mrwebrtc-win32
mrwebrtc-uwp
mrwebrtc-win32-tests
Microsoft.MixedReality.WebRTC
Microsoft.MixedReality.WebRTC.Tests
Microsoft.MixedReality.WebRTC.TestAppUWP
berdasarkan WPF dan XAML yang mendemonstrasikan komunikasi audio / video / data melalui aplikasi obrolan video sederhana. Catatan - Saat ini karena keterbatasan CI, beberapa proyek diturunkan versinya ke VS 2017, karena pencapaian Google M71 yang dibuat oleh cabang master
dan release/1.0
tidak mendukung VS 2019, dan agen Azure DevOps CI tidak mendukung beberapa versi Visual Studio di agen yang sama. Ini pada akhirnya akan dikembalikan ke VS 2019 (lihat #14).
Lihat bagian panduan pengguna tentang Membangun dari sumber.
VideoRecording
atau VideoConferencing
. Ini ditangani secara otomatis di lapisan integrasi Unity (lihat di sini) jika WebcamSrouce.FormatMode = Automatic
(default), tetapi harus ditangani secara manual jika menggunakan pustaka C# secara langsung.screenDuplication
, yang tidak dapat diperoleh oleh aplikasi pihak ketiga . Singkatnya, MRC tidak tersedia untuk aplikasi bersama. Ini adalah batasan OS.PreferredVideoCodec = "H264"
untuk memanfaatkan encoder perangkat keras yang ada di perangkat; pengkodean perangkat lunak dengan misalnya codec VP8 atau VP9 sangat intensif CPU dan sangat tidak disarankan. Versi saat ini adalah pratinjau publik yang berisi masalah umum:
Microsoft.MixedReality.WebRTC.Native
menyertakan beberapa header WebRTC dari repositori Google, yang tidak dikirimkan bersama paket NuGet mana pun, melainkan memerlukan kloning repositori ini dan dependensinya (lihat #123).Selain itu, konfigurasi Debug implementasi inti WebRTC diketahui menunjukkan beberapa masalah kinerja pada sebagian besar perangkat, termasuk beberapa PC kelas atas. Menggunakan konfigurasi Rilis implementasi inti WebRTC biasanya mencegah hal ini, dan sangat disarankan saat tidak melakukan debug.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
MixedReality-WebRTC dibangun berdasarkan implementasi WebRTC yang disediakan oleh Google. Masalah keamanan dan bug yang terkait dengan penerapan ini harus dilaporkan ke Google.
Masalah keamanan dan bug yang terkait dengan MixedReality-WebRTC itu sendiri atau WebRTC UWP SDK harus dilaporkan secara pribadi, melalui email, ke Microsoft Security Response Center (MSRC) [email protected]. Anda akan menerima tanggapan dalam waktu 24 jam. Jika karena alasan tertentu Anda tidak melakukannya, harap tindak lanjuti melalui email untuk memastikan kami menerima pesan asli Anda. Informasi lebih lanjut, termasuk kunci MSRC PGP, dapat ditemukan di Pusat Teknologi Keamanan.