MixedReality-WebRTC عبارة عن مجموعة من المكتبات لمساعدة مطوري تطبيقات الواقع المختلط على دمج اتصالات الصوت والفيديو في الوقت الفعلي من نظير إلى نظير في تطبيقاتهم وتحسين تجربتهم التعاونية.
يعد MixedReality-WebRTC جزءًا من مجموعة المستودعات التي تم تطويرها وصيانتها بواسطة فريق مشاركة الواقع المختلط.
لقد تم إهمال MR-WebRTC. لم نعد نخصص لها موارد تطوير، أو نتلقى طلبات سحب لها، أو نخطط لاستبدالها.
تتوفر حزم NuGet (C++ وC#) وUPM (Unity) للإصدارات المستقرة (فرع release/*
). راجع صفحة الإصدار على GitHub أو صفحة تنزيل الوثائق للحصول على التفاصيل.
ملاحظة : قد يحتوي الفرع master
على تغييرات معطلة في واجهة برمجة التطبيقات (API) من أحدث إصدار ثابت. ولذلك، ليس من المضمون العمل مع حزم NuGet، المتوفرة فقط للإصدارات المستقرة. على وجه الخصوص، يتم ضمان توافق البرامج النصية لمكتبة Unity مع حزم NuGet فقط إذا تم نسخها من فرع release/*
، على الرغم من أنه يوصى بشدة باستخدام حزم UPM بدلاً من ذلك.
يحتوي فرع release/2.0
على أحدث إصدار ثابت من واجهة برمجة التطبيقات (API)، والتي يتم من خلالها نشر حزم NuGet وUPM.
الفرع master
يحتوي على آخر التطورات. لقد تم الحرص على إبقاء هذا الفرع في حالة نظيفة إلى حد ما (يمكن بناء الفرع، واجتياز الاختبارات). ومع ذلك، يحتوي الفرع master
على تغييرات كسر واجهة برمجة التطبيقات مقارنة بالإصدار الأخير، وبالتالي فهو غير متوافق مع حزم NuGet/UPM ويجب إنشاؤه من مصادر بدلاً من ذلك (راجع وثائق البناء من المصادر).
تتم استضافة الوثائق الرسمية على https://microsoft.github.io/MixedReality-WebRTC/.
يحتوي دليل المستخدم على نظرة عامة على المكتبات المختلفة للمشروع وبعض البرامج التعليمية حول كيفية استخدامها.
يتوفر مرجع API لمكتبة C# وتكامل Unity.
الهيكل العام هو كما يلي:
مكتبة | لانج | وصف |
---|---|---|
mrwebrtc | ج/ج++ | توفر مكتبة C/C++ الأصلية واجهة منخفضة المستوى لتطبيق WebRTC الأساسي من Google. بالمقارنة مع واجهة برمجة التطبيقات (API) التي كشف عنها تطبيق Google ( PeerConnection )، تم تبسيط الواجهة الحالية لإزالة عبء الإعداد والتكوين. كما يحاول أيضًا منع أخطاء الترابط الشائعة مع أغلفة UWP. تعرض هذه المكتبة واجهة برمجة تطبيقات C خالصة يمكن دمجها بسهولة في أي تطبيق C/C++. |
Microsoft.MixedReality.WebRTC | ج#7.3 | توفر مكتبة C# .Net Standard 2.0 إمكانية الوصول إلى نفس واجهة برمجة التطبيقات مثل مكتبة 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 التاريخي لتطوير تطبيقات سطح المكتب، وفي مقابل واجهة برمجة التطبيقات "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 (انظر هنا) إذا كان WebcamSrouce.FormatMode = Automatic
(افتراضي)، ولكن يجب معالجته يدويًا في حالة استخدام مكتبة C# مباشرة.screenDuplication
، والتي لا يمكن الحصول عليها بواسطة تطبيقات الطرف الثالث . باختصار، MRC غير متاح للتطبيقات المشتركة. هذا هو وجود قيود على نظام التشغيل.PreferredVideoCodec = "H264"
للاستفادة من برنامج تشفير الأجهزة الموجود على الجهاز؛ يعد ترميز البرامج باستخدام برامج الترميز VP8 أو VP9، على سبيل المثال ، أمرًا مكثفًا للغاية لوحدة المعالجة المركزية (CPU) ولا ينصح به بشدة. الإصدار الحالي عبارة عن معاينة عامة تحتوي على مشكلات معروفة:
Microsoft.MixedReality.WebRTC.Native
بعض رؤوس WebRTC من مستودع Google، والتي لا يتم شحنها مع أي من حزم NuGet نفسها، ولكنها تتطلب بدلاً من ذلك استنساخ هذا المستودع وتبعياته (انظر رقم 123).بالإضافة إلى ذلك، من المعروف أن تكوين Debug لتطبيق WebRTC الأساسي يعرض بعض مشكلات الأداء على معظم الأجهزة، بما في ذلك بعض أجهزة الكمبيوتر الشخصية المتطورة. عادةً ما يؤدي استخدام تكوين الإصدار لتطبيق WebRTC الأساسي إلى منع ذلك، ويوصى به بشدة عند عدم تصحيح الأخطاء.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
يعتمد MixedReality-WebRTC على تطبيق WebRTC الذي توفره Google. يجب الإبلاغ عن مشكلات الأمان والأخطاء المتعلقة بهذا التنفيذ إلى Google.
يجب الإبلاغ عن مشكلات الأمان والأخطاء المتعلقة بـ MixedReality-WebRTC نفسها أو بـ WebRTC UWP SDK بشكل خاص، عبر البريد الإلكتروني، إلى مركز الاستجابة الأمنية لـ Microsoft (MSRC) [email protected]. يجب أن تتلقى الرد خلال 24 ساعة. إذا لم تقم بذلك لأي سبب من الأسباب، فيرجى المتابعة عبر البريد الإلكتروني للتأكد من أننا تلقينا رسالتك الأصلية. يمكن العثور على مزيد من المعلومات، بما في ذلك مفتاح MSRC PGP، في Security TechCenter.