Phát Âm thanh
Phát lại Cơ bản
Để phát một sound wave đã nhập, hãy sử dụng các hàm tương tự như bạn làm với sound wave thông thường. Ví dụ, sử dụng hàm PlaySound2D hoặc Play từ một thành phần âm thanh như Sound Cue.

Kiểm soát Phát lại
Tua lại Thời gian Phát lại
Để tua lại thời gian phát lại của sound wave, hãy sử dụng hàm 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);
Trong các phiên bản UE từ 4.27 trở xuống, nếu bạn muốn bắt đầu phát lại từ một thời điểm cụ thể lớn hơn 0, bạn có thể cần sử dụng hàm RewindPlaybackTime trước. Nếu không, âm thanh có thể không phát lại chính xác do các vấn đề nội bộ của engine khi xử lý các sóng dạng thủ tục (procedural waves). Vấn đề này đã được giải quyết trong engine kể từ phiên bản 5.0.
Lấy Thông Tin Phát Lại
Để lấy thời gian phát hiện tại của sóng âm thanh, hãy sử dụng các hàm GetPlaybackTime hoặc GetPlaybackPercentage. Bạn cũng có thể lấy thời lượng của sóng âm thanh bằng cách sử dụng hàm 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();
Kiểm tra Trạng thái Phát lại
Đang Phát
Để xác định xem sóng âm thanh có đang phát hay không, bạn có thể sử dụng hàm 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();
Đã Phát Lại Kết Thúc Chưa
Để kiểm tra xem sóng âm thanh đã phát xong chưa, bạn có thể sử dụng hàm 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();
Dừng Phát Lại
Bạn có thể dừng phát lại sóng âm thanh bằng cách sử dụng hàm StopPlayback.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
// Stop the playback of the sound wave
ImportedSoundWave->StopPlayback();
Thông thường, bạn nên dừng phát sóng âm thanh bằng các phương tiện bên ngoài (ví dụ: gọi Stop trên thành phần âm thanh) và sử dụng chức năng này nếu không có phương tiện bên ngoài. Ngoài ra, lưu ý rằng chức năng này không hoạt động đối với phát lại từ MetaSounds.
Xử lý Sự kiện
Theo dõi Hoàn tất Phát lại
Để theo dõi kết thúc phát lại âm thanh, hãy liên kết với delegate 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);
}
};
Quản Lý Bộ Nhớ
Giải Phóng Bộ Nhớ
Bạn có thể xóa dữ liệu âm thanh theo cách thủ công bằng hàm ReleaseMemory.
- Blueprint
- C++

// Release memory of the sound wave
ImportedSoundWave->ReleaseMemory();
Việc giải phóng bộ nhớ thủ công không được khuyến nghị trừ khi bạn có yêu cầu quản lý bộ nhớ cụ thể hoặc đã vô hiệu hóa trình thu gom rác.