تشغيل الصوت
التشغيل الأساسي
لتشغيل موجة صوتية مستوردة، استخدم نفس الدوال التي تستخدمها للموجة العادية. على سبيل المثال، استخدم دالة PlaySound2D أو Play من مكون صوتي مثل Sound Cue.

التحكم في التشغيل
إعادة لف وقت التشغيل
لإعادة لف وقت تشغيل الموجة الصوتية، استخدم دالة RewindPlaybackTime.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Rewind playback time of the sound wave for 12.5 seconds
ImportedSoundWave->RewindPlaybackTime(12.5f);
في إصدارات Unreal Engine حتى 4.27، إذا كنت تريد بدء التشغيل من وقت محدد أكبر من 0، قد تحتاج إلى استخدام دالة RewindPlaybackTime أولاً. وإلا، قد لا يتم تشغيل الصوت بشكل صحيح بسبب مشاكل داخلية في المحرك في التعامل مع الموجات الإجرائية. تم حل هذه المشكلة في المحرك منذ الإصدار 5.0.
الحصول على معلومات التشغيل
للحصول على وقت التشغيل الحالي للموجة الصوتية، استخدم دالتي GetPlaybackTime أو GetPlaybackPercentage. يمكنك أيضًا الحصول على مدة الموجة الصوتية باستخدام دالة GetDuration.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Get the current playback time of the sound wave
float PlaybackTime = ImportedSoundWave->GetPlaybackTime();
// Get the current playback percentage of the sound wave
float PlaybackPercentage = ImportedSoundWave->GetPlaybackPercentage();
// Get the duration of the sound wave
float Duration = ImportedSoundWave->GetDuration();
التحقق من حالة التشغيل
هل يتم التشغيل حاليًا
لتحديد ما إذا كانت الموجة الصوتية قيد التشغيل حاليًا، يمكنك استخدام الدالة IsPlaying.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave is currently playing
bool bIsPlaying = ImportedSoundWave->IsPlaying();
هل انتهى التشغيل
للتحقق مما إذا كانت الموجة الصوتية قد انتهت من التشغيل، يمكنك استخدام دالة IsPlaybackFinished.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave has finished playback
bool bIsFinished = ImportedSoundWave->IsPlaybackFinished();
إيقاف التشغيل
يمكنك إيقاف تشغيل الموجة الصوتية باستخدام دالة StopPlayback.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
يوصى عمومًا بإيقاف تشغيل موجة الصوت باستخدام وسائل خارجية (على سبيل المثال، عن طريق استدعاء Stop على مكون الصوت) واستخدام هذه الوظيفة إذا لم تكن الوسائل الخارجية متاحة. لاحظ أيضًا أن هذه الوظيفة لا تعمل للتشغيل من MetaSounds.
معالجة الأحداث
تتبع اكتمال التشغيل
لتتبع نهاية تشغيل الصوت، قم بالربط مع المفوض OnAudioPlaybackFinished.
- Blueprint
- C++

UCLASS()
class AMyAudioPlayer : public AActor
{
GENERATED_BODY()
public:
UFUNCTION()
void OnAudioFinished()
{
// Handle the end of audio playback
}
void BindAudioDelegate(UImportedSoundWave* ImportedSoundWave)
{
// Bind to the OnAudioPlaybackFinished delegate
ImportedSoundWave->OnAudioPlaybackFinished.AddDynamic(this, &AMyAudioPlayer::OnAudioFinished);
}
};
إدارة الذاكرة
تحرير الذاكرة
يمكنك مسح بيانات الصوت يدويًا باستخدام دالة ReleaseMemory.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
لا يُوصى بالإفراج اليدوي عن الذاكرة إلا إذا كان لديك متطلبات محددة لإدارة الذاكرة أو إذا قمت بتعطيل جامع القمامة.