Chuyển tới nội dung chính

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 giống như bạn dùng cho một sound wave thông thường. Ví dụ, sử dụng hàm PlaySound2D hoặc Play từ một audio component như Sound Cue.

Various examples of playing a sound wave

Điều khiển phát lại​

Tua lại thời gian phát lại​

Để tua lại thời gian phát của sóng âm thanh, hãy sử dụng hàm RewindPlaybackTime.

An example of rewinding playback of a sound wave for 12.5 seconds

ghi chú

Trong các phiên bản UE đến 4.27, 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 đúng do các vấn đề nội bộ của engine khi xử lý procedural wave. 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.

Get Playback Time and Get Playback Percentage nodes

Kiểm tra trạng thái phát lại​

Hiện đang phát​

Để xác định xem sóng âm thanh hiện có đang phát hay không, bạn có thể sử dụng hàm IsPlaying.

Is Playing node

Đã phát xong 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.

Is Playback Finished node

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.

Stop Playback node

thông tin

Nói chung, bạn nên dừng phát sóng âm thanh bằng các cách bên ngoài (ví dụ: gọi Stop trên audio component) và chỉ dùng hàm này nếu không có cách bên ngoài nào khả dụng. Cũng lưu ý rằng hàm này không hoạt động 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 thời điểm kết thúc phát âm thanh, hãy liên kết với delegate OnAudioPlaybackFinished.

An example of binding to the OnAudioPlaybackFinished delegate

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 cách sử dụng hàm ReleaseMemory.

Release Memory node

cảnh báo

Không nên giải phóng bộ nhớ thủ công trừ khi bạn có yêu cầu quản lý bộ nhớ cụ thể hoặc đã tắt trình thu gom rác.

Giải phóng dữ liệu âm thanh đã phát​

Để tự động giải phóng phần đã phát của bộ đệm âm thanh trong quá trình phát, hãy cấu hình cài đặt giải phóng bằng hàm SetPlayedAudioDataReleaseSettings.

Set Played Audio Data Release Settings node

  • bReleasePlayedAudioData - liệu việc giải phóng có được bật hay không. Mặc định bị tắt
  • ReleaseCallbackFrequency - số lượng yêu cầu tạo âm thanh (các lệnh gọi OnGeneratePCMAudio) giữa các lần kiểm tra giải phóng
  • MinFramesToRelease - số khung hình đã phát tối thiểu cần thiết để kích hoạt việc giải phóng
cảnh báo

Bật tính năng này sẽ giới hạn việc tua lại/tìm kiếm trước điểm đã được phát hành, vì dữ liệu âm thanh đó đã được giải phóng vật lý và không thể phát lại được nữa.