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

استيراد الصوت

نظرة عامة

يمكن تقسيم عملية استيراد الصوت أثناء التشغيل إلى عدة خطوات:

  1. إنشاء أداة استيراد الصوت أثناء التشغيل (Runtime Audio Importer)
  2. الربط بالوكلاء المطلوبين (OnProgress و OnResult)
  3. استيراد الصوت من ملف أو مخزن مؤقت (buffer)
  4. تشغيل موجة الصوت المستوردة التي تم الحصول عليها من وكيل OnResult (المزيد من المعلومات هنا)
ملاحظة هامة

تأكد من عدم جمع كلا مثيلي Runtime Audio Importer و Sound Wave بواسطة جامع القمامة قبل الأوان عن طريق الحفاظ على مرجع قوي لهما، ويمكن القيام بذلك عن طريق تعيينهما لمتغيرات منفصلة باستخدام UPROPERTY()، أو TStrongObjectPtr، أو أي طريقة أخرى تمنع تدمير الكائن.

تنسيقات الصوت المدعومة

تدعم أداة استيراد الصوت أثناء التشغيل استيراد تنسيقات الصوت التالية:

التنسيقالوصف
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISحاوية Ogg مع صوت Vorbis
OGG OPUSحاوية Ogg مع صوت Opus
BINKBink Audio
RAW (PCM)بيانات صوت غير مضغوطة بتعديل رمز النبض (Pulse-Code Modulation) (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
تلميح

عند استيراد الصوت، يمكنك إما تحديد التنسيق صراحةً أو استخدام الكشف التلقائي عن التنسيق بناءً على امتداد الملف أو محتواه.

عمليات استيراد الصوت المتدفق

بالنسبة لسيناريوهات التدفق حيث يتم استقبال بيانات الصوت بشكل تدريجي (على سبيل المثال، من خادم، أو تسجيل في الوقت الفعلي، أو تدفقات الشبكة)، فكر في استخدام Streaming Sound Waves.

توفر هذه الطريقة وسيلة مستمرة لإلحاق بيانات الصوت بنفس المخزن المؤقت (buffer) لموجة الصوت، مما يجعلها مناسبة للتدفقات الحية أو الملفات الكبيرة التي تتم معالجتها على شكل أجزاء. راجع توثيق Streaming Sound Wave لمزيد من التفاصيل.

خطوات التنفيذ الأساسية

1. إنشاء أداة استيراد الصوت أثناء التشغيل

أولاً، تحتاج إلى إنشاء كائن Runtime Audio Importer. يجب أن تتأكد من معاملته كمرجع قوي بواسطة جامع القمامة.

عقدة إنشاء Runtime Audio Importer

2. الربط بمندوب OnProgress

لتتبع تقدم استيراد بيانات الصوت، يمكنك الربط بمندوب OnProgress (Blueprints) / OnProgressNative (C++).

مثال على الربط بمندوب On Progress

تلميح

سيسمح لك هذا بمراقبة التقدم، وتنفيذ شاشة تحميل على سبيل المثال.

3. الربط بمنفذ OnResult

للإشعار عند اكتمال عملية استيراد بيانات الصوت وللوصول إلى المرجع لموجة الصوت الناتجة، يجب عليك الربط بمنفذ OnResult (بلوبرينتس) / OnResultNative (++C).

مثال على الربط بمنفذ On Result

warning

تأكد من أن موجة الصوت المستوردة تُعامل كمرجع قوي بواسطة جامع القمامة لمنع حذفها المبكر غير المرغوب فيه. يمكن القيام بذلك عن طريق وضعها كمتغير منفصل في Blueprints.

4. بدء استيراد الصوت

ابدأ عملية استيراد الصوت عن طريق استدعاء الدالة ذات الصلة، والتي يمكنها التعامل مع كل من تنسيقات بيانات الصوت المضغوطة وغير المضغوطة.

أمثلة لعقد Import Audio

وظائف الأدوات المساعدة

البحث عن ملفات الصوت

يمكنك مسح دليل للبحث عن ملفات الصوت المدعومة:

عقدة Scan Directory For Audio Files

مثال كامل

إليك مثال تنفيذ كامل لاستيراد الصوت:

مثال كامل