ConstantSourceNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Giao diện ConstantSourceNode là một phần của Web Audio API, đại diện cho một nguồn âm thanh (dựa trên AudioScheduledSourceNode) có đầu ra là một giá trị đơn không thay đổi. Điều này khiến nó hữu ích trong những trường hợp bạn cần một giá trị hằng đi vào từ một nguồn âm thanh. Ngoài ra, nó có thể được dùng như một AudioParam có thể khởi tạo bằng hàm tạo bằng cách tự động hóa giá trị của offset hoặc bằng cách nối một nút khác vào nó; xem Điều khiển nhiều tham số bằng ConstantSourceNode.

Một ConstantSourceNode không có đầu vào và có đúng một đầu ra đơn âm (một kênh). Giá trị đầu ra luôn giống với giá trị của tham số offset.

EventTarget AudioNode AudioScheduledSourceNode ConstantSourceNode
Số lượng đầu vào 0
Số lượng đầu ra 1

Constructor

ConstantSourceNode()

Tạo và trả về một thực thể ConstantSourceNode mới, có thể chỉ định thêm một đối tượng để thiết lập các giá trị ban đầu cho thuộc tính của đối tượng. Ngoài ra, bạn có thể dùng phương thức factory BaseAudioContext.createConstantSource(); xem Tạo một AudioNode.

Thuộc tính thể hiện

Kế thừa các thuộc tính từ giao diện cha của nó, AudioScheduledSourceNode, và bổ sung các thuộc tính sau:

offset

Một AudioParam chỉ định giá trị mà nguồn này liên tục xuất ra. Giá trị mặc định là 1.0.

Sự kiện

Kế thừa các sự kiện từ giao diện cha của nó, AudioScheduledSourceNode.

Note: Trong một số trình duyệt, cách triển khai các sự kiện này là một phần của giao diện AudioScheduledSourceNode.

ended

Được kích hoạt bất cứ khi nào dữ liệu của ConstantSourceNode dừng phát.

Phương thức thể hiện

Kế thừa các phương thức từ giao diện cha của nó, AudioScheduledSourceNode.

Note: Trong một số trình duyệt, cách triển khai các phương thức này là một phần của giao diện AudioScheduledSourceNode.

start()

Lên lịch để âm thanh phát tại một thời điểm chính xác.

stop()

Lên lịch để âm thanh dừng phát tại một thời điểm chính xác.

Ví dụ

Trong bài viết Điều khiển nhiều tham số bằng ConstantSourceNode, một ConstantSourceNode được tạo để cho phép một thanh trượt điều khiển thay đổi hệ số khuếch đại của hai GainNode. Ba nút được thiết lập như sau:

js
gainNode2 = context.createGain();
gainNode3 = context.createGain();
gainNode2.gain.value = gainNode3.gain.value = 0.5;
volumeSliderControl.value = gainNode2.gain.value;

constantNode = context.createConstantSource();
constantNode.connect(gainNode2.gain);
constantNode.connect(gainNode3.gain);
constantNode.start();

gainNode2.connect(context.destination);
gainNode3.connect(context.destination);

Đoạn mã này bắt đầu bằng việc tạo các nút gain và đặt giá trị của chúng, cùng với điều khiển âm lượng sẽ dùng để điều chỉnh chúng, về 0.5. Sau đó ConstantSourceNode được tạo bằng cách gọi AudioContext.createConstantSource(), rồi các tham số gain của từng nút gain được nối với ConstantSourceNode. Sau khi khởi động nguồn hằng bằng cách gọi phương thức start() của nó, cuối cùng hai nút gain được nối tới đích âm thanh (thường là loa hoặc tai nghe).

Giờ đây, bất cứ khi nào giá trị của constantNode.offset thay đổi, hệ số gain của cả gainNode2gainNode3 cũng sẽ thay đổi theo cùng giá trị đó.

Để xem ví dụ này hoạt động thực tế, cũng như đọc phần còn lại của mã nguồn mà những đoạn trích này được lấy ra, hãy xem Điều khiển nhiều tham số bằng ConstantSourceNode.

Thông số kỹ thuật

Specification
Web Audio API
# ConstantSourceNode

Khả năng tương thích trình duyệt

Xem thêm