Ses Oynatma
Temel Oynatma
İçe aktarılmış bir ses dalgasını oynatmak için, normal bir ses dalgası için kullanacağınız aynı işlevleri kullanın. Örneğin, bir Ses İpucu gibi bir ses bileşeninden PlaySound2D
veya Play
işlevini kullanın.
Oynatmayı Kontrol Etme
Oynatma Zamanını Geri Sarma
Ses dalgasının oynatma zamanını geri sarmak için RewindPlaybackTime
işlevini 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 ve önceki sürümlerde, 0'dan büyük belirli bir zamandan oluşturmayı başlatmak istiyorsanız, öncesinde RewindPlaybackTime
fonksiyonunu kullanmanız gerekebilir. Aksi takdirde, prosedürel dalgaları işlemedeki dahili motor sorunları nedeniyle ses doğru şekilde oynatılmayabilir. Bu sorun motor sürüm 5.0'dan itibaren çözülmüştür.
Oynatma Bilgilerini Alma
Ses dalgasının mevcut oynatma zamanını almak için GetPlaybackTime
veya GetPlaybackPercentage
fonksiyonlarını kullanın. Ayrıca ses dalgasının süresini GetDuration
fonksiyonunu kullanarak 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 oynatılıp oynatılmadığı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 oynatmasının tamamlanıp tamamlanmadığını 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ı oynatmayı 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ı durdurmak için harici yöntemlerin (örneğin, ses bileşeninde Stop'u çağırarak) kullanılması önerilir ve bu işlev yalnızca harici yöntemler mevcut değilse kullanılmalıdır. Ayrıca, bu işlevin MetaSounds'tan oynatım için çalışmadığını unutmayın.
Olay İşleme
Oynatım Tamamlanmasını İzleme
Ses oynatımının sonunu izlemek için, OnAudioPlaybackFinished
temsilcisine 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
Ses verilerini ReleaseMemory
fonksiyonunu kullanarak manuel olarak temizleyebilirsiniz.
- Blueprint
- C++
// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
Manuel bellek serbest bırakma, belirli bellek yönetimi gereksinimleriniz yoksa veya çöp toplayıcıyı devre dışı bırakmadıysanız önerilmez.