Tôi thường đọc rằng không thể tạm dừng/tiếp tục các tệp âm thanh với Web Audio API.
Nhưng bây giờ tôi đã thấy một số example nơi họ thực sự có thể tạm dừng và tiếp tục lại. Tôi cố gắng tìm hiểu xem họ đã làm thế nào. Tôi nghĩ có lẽ source.looping = false
là chìa khóa, nhưng không phải vậy.
Hiện tại, âm thanh của tôi luôn phát lại từ đầu.API âm thanh web tiếp tục từ tạm dừng
Đây là mã hiện tại của tôi
var context = new (window.AudioContext || window.webkitAudioContext)();
function AudioPlayer() {
this.source = context.createBufferSource();
this.analyser = context.createAnalyser();
this.stopped = true;
}
AudioPlayer.prototype.setBuffer = function(buffer) {
this.source.buffer = buffer;
this.source.looping = false;
};
AudioPlayer.prototype.play = function() {
this.source.connect(this.analyser);
this.analyser.connect(context.destination);
this.source.noteOn(0);
this.stopped = false;
};
AudioPlayer.prototype.stop = function() {
this.analyser.disconnect();
this.source.disconnect();
this.stopped = true;
};
Có ai biết phải làm gì, để làm cho nó hoạt động?
Vâng, anh ta không sử dụng 'noteGrainOn()' trong ví dụ (mặc dù vậy vẫn không thể biết được anh ta làm thế nào). Nhưng dù sao, điều này hoạt động như một sự quyến rũ, vì vậy tôi sẽ coi đây là một câu trả lời được chấp nhận. Cảm ơn bạn :) –
noteGrainOn() hiện đã được đổi tên trong spec, như có noteOn() - cả hai đều đang chơi(), có hoặc không có đối số bù đắp hạt. Tuy nhiên, chưa thấy điều này được hỗ trợ. – LeeGee
nó thực sự là 'bắt đầu' (có hoặc không có đối số' bắt đầu (howSoonRelativeToCurrentTime, fromSecondInBuffer, forDuration) ') và có vẻ như hoạt động trong Chrome Canary –