Ses Çal
Temel Oynatma
İçe aktarılan bir ses dalgasını oynatmak için, normal bir ses dalgasında kullanacağınız aynı fonksiyonları kullanın. Örneğin, Sound Cue gibi bir ses bileşeninden PlaySound2D veya Play fonksiyonunu kullanın.

Oynatmayı Kontrol Etme
Oynatma Zamanını Geri Sarma
Ses dalgasının oynatma süresini geri sarmak için RewindPlaybackTime fonksiyonunu kullanın.
- 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);
UE 4.27'ye kadar olan sürümlerde, oynatmayı 0'dan büyük belirli bir zamandan başlatmak istiyorsanız, öncesinde RewindPlaybackTime fonksiyonunu kullanmanız gerekebilir. Aksi takdirde, motorun prosedürel dalgaları işlemesindeki dahili sorunlar nedeniyle ses doğru şekilde oynatılamayabilir. Bu sorun, motorun 5.0 sürümünden itibaren giderilmiştir.
Oynatma Bilgilerini Alma
Ses dalgasının geçerli oynatma süresini almak için GetPlaybackTime veya GetPlaybackPercentage işlevlerini kullanın. Ses dalgasının süresini GetDuration işlevini kullanarak da elde edebilirsiniz.
- 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();
Oynatma Durumunu Kontrol Etme
Şu Anda Oynatılıyor
Ses dalgasının şu anda çalıp çalmadığını belirlemek için IsPlaying fonksiyonunu kullanabilirsiniz.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave is currently playing
bool bIsPlaying = ImportedSoundWave->IsPlaying();
Oynatma Tamamlandı mı
Ses dalgasının çalmayı bitirip bitirmediğini kontrol etmek için IsPlaybackFinished fonksiyonunu kullanabilirsiniz.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Check if the sound wave has finished playback
bool bIsFinished = ImportedSoundWave->IsPlaybackFinished();
Oynatmayı Durdurma
Ses dalgası oynatımını StopPlayback fonksiyonunu kullanarak durdurabilirsiniz.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Ses dalgası oynatımını genellikle harici yollarla (örneğin, ses bileşeni üzerinde Stop çağırarak) durdurmanız önerilir ve harici yollar mevcut değilse bu işlevi kullanın. Ayrıca, bu işlevin MetaSounds'tan oynatım için çalışmadığını unutmayın.
Olay İşleme
Oynatma Tamamlanmasını İzleme
Ses oynatmanın sonunu takip etmek için OnAudioPlaybackFinished delegesine bağlanın.
- 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);
}
};
Bellek Yönetimi
Belleği Serbest Bırakma
ReleaseMemory fonksiyonunu kullanarak ses verilerini manuel olarak temizleyebilirsiniz.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
Manuel bellek serbest bırakma, belirli bellek yönetimi gereksinimleriniz olmadığı veya çöp toplayıcıyı devre dışı bırakmadığınız sürece önerilmez.
Çalınan Ses Verilerini Serbest Bırakma
Çalma sırasında ses arabelleğinin zaten çalınmış kısmını otomatik olarak serbest bırakmak için, serbest bırakma ayarlarını SetPlayedAudioDataReleaseSettings fonksiyonunu kullanarak yapılandırın.
- Blueprint
- C++

FPlayedAudioDataReleaseSettings ReleaseSettings;
ReleaseSettings.bReleasePlayedAudioData = true;
ReleaseSettings.ReleaseCallbackFrequency = 50;
ReleaseSettings.MinFramesToRelease = 44100;
// Configure automatic release of the already-played audio data
ImportedSoundWave->SetPlayedAudioDataReleaseSettings(ReleaseSettings);
bReleasePlayedAudioData- serbest bırakmanın etkin olup olmadığı. Varsayılan olarak devre dışıReleaseCallbackFrequency- serbest bırakma kontrolleri arasındaki ses üretim isteği sayısı (OnGeneratePCMAudioçağrıları)MinFramesToRelease- bir serbest bırakmayı tetiklemek için gereken minimum çalınan kare sayısı
Bunun etkinleştirilmesi, zaten serbest bırakılmış noktadan önce geri sarma/ileri atlama işlemini sınırlar; çünkü o ses verisi fiziksel olarak serbest bırakılmıştır ve artık oynatılamaz.