Tôi không thể có được sự thay đổi về khối lượng thông qua exponentialRampToValueAtTime của GainNode.Công việc audioParam.exponentialRampToValueAtTime hoạt động như thế nào?
Dưới đây là một ví dụ:
var context = new AudioContext(),
osc = context.createOscillator(),
gain = context.createGain();
osc.frequency.value = 440; // A note
osc.start(0);
osc.connect(gain);
gain.gain.value = 0;
gain.connect(context.destination);
gain.gain.cancelScheduledValues(0);
gain.gain.setValueAtTime(0, context.currentTime);
gain.gain.exponentialRampToValueAtTime(1, context.currentTime + 2);
Trong hiểu biết của tôi này nên tăng dần khối lượng, cho đến khi đạt 1 (100%) và toàn bộ quá trình này nên mất 2 giây. Giả định này có đúng không?
Nếu có, tại sao ở trên 0 trong 2 giây và đột nhiên chuyển sang âm lượng đầy đủ?
Cảm ơn trước vì đã dành thời gian và công sức của bạn.
Bạn đã thử 'linearRampToValueAtTime' chưa? –
Tôi có, và nó hoạt động, nhưng tôi đọc rằng tuyến tính không âm thanh tốt như đoạn đường nối mũ, vì vậy tôi muốn thử điều này. Tôi đang viết một máy tạo phong bì và tôi muốn thử nghiệm một số tùy chọn. –
Tôi đoán đây là cách nó được cho là hoạt động. Ramp lên nhanh. –