انتقل إلى المحتوى الرئيسي

التقاط الصوت عبر بيكسل ستريمينغ

بيكسل ستريمينغ هو إضافة لمحرك أنريل إنجن تقوم ببث الإطارات المُصورة وتزامن الإدخال/الإخراج عبر WebRTC. يعمل التطبيق على جانب الخادم، بينما يتعامل جانب العميل مع التصيير وتفاعل المستخدم. لمزيد من التفاصيل حول بيكسل ستريمينغ والإعداد، راجع توثيق بيكسل ستريمينغ.

بيكسل ستريمينغ مقابل بيكسل ستريمينغ 2

تدعم هذه الإضافة كلا إصدارَي بيكسل ستريمينغ المتاحين في محرك أنريل إنجن:

  • بيكسل ستريمينغ - الإضافة الأصلية، المتاحة منذ UE 5.2 ولا تزال مستخدمة بنشاط في إصدارات المحرك الحالية
  • بيكسل ستريمينغ 2 - أُدخلت في UE 5.5 كتنفيذ من الجيل التالي بهيكل داخلي محسّن. تعرّف على المزيد حول بيكسل ستريمينغ 2

كلا الإصدارين مدعومان بالكامل ومتاحان في أحدث إصدارات محرك أنريل إنجن. اختر الإصدار الذي يتطابق مع إعداد بيكسل ستريمينغ في مشروعك.

معلومات

واجهة برمجة التطبيقات (API) لكلا الإصدارين متطابقة، والفرق الوحيد هو أن فئات ووظائف بيكسل ستريمينغ 2 تتضمن الرقم "2" في أسمائها (مثل UPixelStreamingCapturableSoundWave مقابل UPixelStreaming2CapturableSoundWave).

التوافق

يعمل هذا الحل مع:

تم اختبار التنفيذ عبر هذه البيئات ويعمل بشكل صحيح بغض النظر عن حل استضافة بيكسل ستريمينغ المستخدم.

تثبيت إضافة الامتداد

توفّر هذه الميزة كامتداد لإضافة Runtime Audio Importer. لاستخدامها، تحتاج إلى:

  1. التأكد من تثبيت إضافة Runtime Audio Importer بالفعل في مشروعك
  2. تنزيل إضافة الامتداد لإصدار بيكسل ستريمينغ الخاص بك:
  3. استخراج المجلد من الأرشيف المُنزّل إلى مجلد Plugins في مشروعك (أنشئ هذا المجلد إذا لم يكن موجودًا)
  4. إعادة بناء مشروعك (يتطلب هذا الامتداد مشروعًا بلغة C++)
important
  • يتم توفير هذه الامتدادات كشفرة مصدرية وتتطلب مشروعًا بلغة C++ لاستخدامها
  • امتداد بيكسل ستريمينغ: مدعوم في UE 5.2 والإصدارات الأحدث
  • امتداد بيكسل ستريمينغ 2: مدعوم في UE 5.5 والإصدارات الأحدث
  • لمزيد من المعلومات حول كيفية بناء الإضافات يدويًا، راجع درس بناء الإضافات

نظرة عامة

يمتد موجة الصوت القابلة للالتقاط لبيكسل ستريمينغ من موجة الصوت القابلة للالتقاط القياسية للسماح بالتقاط الصوت مباشرة من ميكروفونات عملاء بيكسل ستريمينغ. تتيح لك هذه الميزة:

  • التقاط الصوت من المتصفحات المتصلة عبر بيكسل ستريمينغ
  • معالجة الصوت من لاعبين/نظائر محددين
  • تنفيذ الدردشة الصوتية، أو الأوامر الصوتية، أو تسجيل الصوت من المستخدمين البعيدين

الاستخدام الأساسي

إنشاء موجة صوت قابلة للالتقاط لبيكسل ستريمينغ

أولاً، تحتاج إلى إنشاء كائن موجة صوت قابلة للالتقاط لبيكسل ستريمينغ:

عقدة إنشاء موجة صوت قابلة للالتقاط لبيكسل ستريمينغ

warning

يجب أن تعامل موجة الصوت القابلة للتسجيل في Pixel Streaming كمرجع قوي لمنع التدمير المبكر (على سبيل المثال، عن طريق تعيينه لمتغير منفصل في Blueprints أو استخدام UPROPERTY() في ++C).

بدء وإيقاف التسجيل

يمكنك بدء وإيقاف تسجيل الصوت باستدعاءات دالة بسيطة:

عقد بدء وإيقاف التسجيل

ملاحظة

يتم تجاهل المعلمة DeviceId في StartCapture لموجات الصوت القابلة للتسجيل في Pixel Streaming، حيث يتم تحديد مصدر التسجيل تلقائيًا أو من خلال معلومات المشغل التي قمت بتعيينها.

التحقق من حالة التسجيل

يمكنك التحقق مما إذا كانت موجة الصوت تقوم حاليًا بتسجيل الصوت:

عقدة Is Capturing

مثال كامل

إليك مثالاً كاملاً لكيفية إعداد التقاط الصوت من Pixel Streaming:

مثال التقاط Pixel Streaming الكامل

العمل مع مشغلي Pixel Streaming المتعددين

في السيناريوهات التي يكون لديك فيها عدة عملاء Pixel Streaming متصلين في وقت واحد، قد تحتاج إلى التقاط الصوت من مشغليين محددين. تساعدك الميزات التالية في إدارة هذا.

الحصول على مشغلي Pixel Streaming المتاحين

لتحديد مشغلي Pixel Streaming المتصلين:

عقدة Get Available Pixel Streaming Players

تعيين اللاعب للالتقاط منه

عندما تحتاج إلى الالتقاط من لاعب محدد:

عقدة Set Player To Capture From

معلومات

إذا تركت معرف اللاعب (Player ID) فارغًا، فستستمع موجة الصوت تلقائيًا إلى أول لاعب متاح يتصل. هذا هو السلوك الافتراضي ويعمل بشكل جيد في سيناريوهات اللاعب الفردي.

حالات الاستخدام الشائعة

تنفيذ الدردشة الصوتية

يمكنك استخدام موجات الصوت القابلة للتسجيل لـ Pixel Streaming لتنفيذ دردشة صوتية بين المستخدمين البعيدين واللاعبين المحليين:

  1. قم بإنشاء موجة صوت قابلة للتسجيل لـ Pixel Streaming لكل لاعب متصل
  2. قم بإعداد نظام لإدارة اللاعبين الذين يتحدثون حاليًا
  3. استخدم نظام كشف نشاط الصوت للكشف عن وقت تحدث المستخدمين
  4. قم بتحديد مكان الصوت مكانيًا باستخدام نظام الصوت في Unreal Engine إذا لزم الأمر

الأوامر الصوتية مع التعرف على الكلام

يمكنك تنفيذ التعرف على الأوامر الصوتية للمستخدمين البعيدين من خلال دمج هذه الميزة مع ملحق Runtime Speech Recognizer:

  1. قم بتسجيل الصوت من عملاء Pixel Streaming باستخدام موجة الصوت القابلة للتسجيل لـ Pixel Streaming
  2. قم بتغذية الصوت المسجل مباشرة إلى Runtime Speech Recognizer
  3. قم بمعالجة النص المعترف به في منطق لعبتك

ما عليك سوى استبدال موجة الصوت القابلة للتسجيل القياسية بموجة الصوت القابلة للتسجيل لـ Pixel Streaming (أو موجة الصوت القابلة للتسجيل لـ Pixel Streaming 2) في أمثلة Runtime Speech Recognizer، وستعمل بسلاسة مع إدخال الصوت من Pixel Streaming.

تسجيل صوت المستخدم البعيد

يمكنك تسجيل الصوت من المستخدمين البعيدين للتشغيل لاحقًا:

  1. قم بتسجيل الصوت باستخدام موجة الصوت القابلة للتسجيل لـ Pixel Streaming
  2. قم بتصدير الصوت المسجل إلى ملف باستخدام تصدير الصوت
  3. احفظ الملف للاستخدام أو التحليل لاحقًا