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

Import Audio

Tổng quan

Quy trình nhập audio tại thời điểm chạy có thể được chia thành nhiều bước:

  1. Tạo một Runtime Audio Importer
  2. Liên kết với các delegate cần thiết (OnProgressOnResult)
  3. Nhập audio từ một file hoặc bộ đệm
  4. Phát sound wave đã nhập được lấy từ delegate OnResult (thông tin thêm tại đây)
Lưu ý Quan trọng

Đảm bảo rằng cả hai instance Runtime Audio ImporterSound Wave không bị garbage collection thu hồi sớm bằng cách duy trì một tham chiếu cứng tới chúng, việc này có thể được thực hiện bằng cách gán chúng vào các biến riêng biệt sử dụng UPROPERTY(), TStrongObjectPtr, hoặc bất kỳ phương pháp nào khác ngăn đối tượng bị hủy.

Các Định dạng Audio Được Hỗ trợ

Runtime Audio Importer hỗ trợ nhập các định dạng audio sau:

Định dạngMô tả
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVĐịnh dạng File Audio Waveform
FLACBộ giải mã âm thanh không mất dữ liệu miễn phí
OGG VORBISVùng chứa Ogg với audio Vorbis
OGG OPUSVùng chứa Ogg với audio Opus
BINKBink Audio
RAW (PCM)Dữ liệu audio Điều chế Xung Mã không nén (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
mẹo

Khi nhập audio, bạn có thể chỉ định định dạng một cách rõ ràng hoặc sử dụng tính năng phát hiện định dạng tự động dựa trên phần mở rộng file hoặc nội dung.

Nhập Audio Streaming

Đối với các tình huống streaming nơi dữ liệu audio được nhận dần dần (ví dụ: từ máy chủ, thu âm thời gian thực, hoặc luồng mạng), hãy cân nhắc sử dụng Streaming Sound Waves.

Phương pháp này cung cấp một cách liên tục để nối thêm dữ liệu audio vào cùng một bộ đệm sound wave, làm cho nó phù hợp với các luồng trực tiếp hoặc các file lớn được xử lý theo từng khối. Xem tài liệu Streaming Sound Wave để biết thêm chi tiết.

Các Bước Triển khai Cơ bản

1. Tạo Runtime Audio Importer

Đầu tiên, bạn cần tạo một đối tượng Runtime Audio Importer. Bạn nên đảm bảo nó được garbage collector coi là một tham chiếu mạnh.

Nút Create Runtime Audio Importer

2. Liên kết với Delegate OnProgress

Để theo dõi tiến trình nhập dữ liệu âm thanh, bạn có thể liên kết với delegate OnProgress (Blueprints) / OnProgressNative (C++).

Ví dụ về việc liên kết với delegate On Progress

mẹo

Điều này sẽ cho phép bạn theo dõi tiến trình và, ví dụ, triển khai một màn hình tải.

3. Liên kết với Delegate OnResult

Để được thông báo khi quá trình nhập dữ liệu âm thanh hoàn tất và để truy cập tham chiếu của sóng âm thanh kết quả, bạn phải liên kết với delegate OnResult (Blueprints) / OnResultNative (C++).

Một ví dụ về việc liên kết với delegate On Result

cảnh báo

Đảm bảo sóng âm thanh đã nhập được coi là một tham chiếu mạnh bởi bộ thu gom rác để ngăn chặn việc thu gom rác sớm không mong muốn. Điều này có thể được thực hiện bằng cách đặt nó như một biến riêng biệt trong Blueprints.

4. Bắt đầu Nhập Âm thanh

Bắt đầu quá trình nhập âm thanh bằng cách gọi hàm liên quan, hàm này có thể xử lý cả định dạng dữ liệu âm thanh nén và không nén.

Import Audio nodes examples

Hàm Tiện Ích

Tìm Kiếm Tệp Âm Thanh

Bạn có thể quét một thư mục để tìm các tệp âm thanh được hỗ trợ:

Nút Scan Directory For Audio Files

Ví dụ Hoàn chỉnh

Dưới đây là một ví dụ triển khai đầy đủ cho việc nhập âm thanh:

Ví dụ đầy đủ