Tôi có mã JS sau cho trò chơi dựa trên canvas.Phát âm thanh qua JS với chồng chéo
var EXPLOSION = "sounds/explosion.wav";
function playSound(str, vol) {
var snd = new Audio();
snd.src = str;
snd.volume = vol;
snd.play();
}
function createExplosion() {
playSound(EXPLOSION, 0.5);
}
Công trình này sẽ gửi yêu cầu máy chủ tải xuống tệp âm thanh mỗi khi được gọi. Ngoài ra, nếu tôi khai báo đối tượng âm thanh trước:
var snd = new Audio();
snd.src = EXPLOSION;
snd.volume = 0.5;
function createExplosion() {
snd.play();
}
này hoạt động, tuy nhiên nếu các chức năng createExplosion được gọi trước khi âm thanh được chơi xong, nó không phát âm thanh ở tất cả. Điều này có nghĩa rằng chỉ có một lần phát duy nhất của tệp âm thanh được cho phép tại một thời điểm - và trong các tình huống mà nhiều vụ nổ đang diễn ra, nó không hoạt động chút nào.
Có cách nào để phát đúng cách tệp âm thanh nhiều lần trùng lặp với chính nó không?
Đã kết thúc đi với sử dụng thư viện AudioFX: http: // codeincomplete .com/posts/2011/9/17/revisiting_html5_audio/ –