خصائص موجة الصوت
الوصول إلى بيانات الصوت
استرجاع عازل PCM
يمكنك استرجاع عازل PCM بالكامل من موجة الصوت مباشرة.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<float> PCMBuffer = ImportedSoundWave->GetPCMBufferCopy();
:::نصيحة إذا كنت بحاجة إلى تحويل بيانات PCM التي تم الحصول عليها إلى بايت، راجع تحويل مصفوفة الفلوات إلى بايت. :::
خصائص التشغيل
التكرار
لإنشاء حلقة صوتية سلسة، يمكنك ضبط التكرار لإعادة وقت تشغيل موجة الصوت تلقائيًا إلى الصفر والاستمرار في التشغيل بعد انتهاء التشغيل.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetLooping(false);
التحكم في الصوت
يمكنك ضبط مستوى الصوت الذي يتم تشغيله ليناسب احتياجاتك.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVolume(1.0f);
ضبط درجة الصوت
يمكنك تعديل درجة الصوت (Pitch) للصوت المشغّل حسب تفضيلاتك.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetPitch(1.0f);
ميزات إضافية
الترجمة النصية
يمكنك تعيين الترجمة النصية، أي تحديد النص والوقت الذي يجب أن يظهر فيه.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<FEditableSubtitleCue> Subtitles;
FEditableSubtitleCue Subtitle;
Subtitle.Text = FText::FromString("Example");
Subtitle.Time = 2.0f;
Subtitles.Add(Subtitle);
ImportedSoundWave->SetSubtitles(Subtitles);
وضع المحاكاة الافتراضية
يمكنك تعيين وضع المحاكاة الافتراضية، مثل التشغيل عند الصمت، والذي يسمح لموجة الصوت بالاستمرار في التشغيل حتى أثناء فترات الصمت.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVirtualizationMode(EVirtualizationMode::PlayWhenSilent);
:::ملاحظة هذا مفيد بشكل خاص إذا كنت تستخدم التوهين الصوتي للتحكم في كيفية تلاشي الصوت مع المسافة. :::
تعديلات تنسيق الصوت
إعادة التشكيل اليدوي ومزج القنوات
إذا كنت بحاجة إلى تغيير معدل العينات أو عدد القنوات في موجة الصوت المستوردة، يمكنك استخدام الدوال المناسبة لإعادة تشكيل ومزج بيانات الصوت.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->ResampleSoundWave(44100);
ImportedSoundWave->MixSoundWaveChannels(2);
سيؤدي هذا إلى تعديل بيانات موجة الصوت بالكامل وسيؤثر على المخرجات من المفوضين OnGeneratePCMData
و OnPopulateAudioData
وفقًا لذلك.
التحويل التلقائي للتنسيق
يمكنك إعادة تشكيل ومزج جميع بيانات الصوت القادمة تلقائيًا ليتم تعبئتها بمعدل العينات المطلوب المحدد وعدد القنوات.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetInitialDesiredSampleRate(44100);
ImportedSoundWave->SetInitialDesiredNumOfChannels(2);
:::معلومات
سيؤثر هذا أيضًا على المخرجات من مندوبي OnGeneratePCMData
و OnPopulateAudioData
وفقًا لذلك.
:::