在谷歌浏览器中:
播放一个.wav文件,循环播放。另一个.wav文件会不时播放作为声音效果。
播放声音效果时,循环声音的音量会自动降低。体积在约15秒内再次逐渐增加。
(我猜它会自动躲避http://en.wikipedia.org/wiki/Ducking)
当播放声音效果时,我不希望循环的音量减小。我该如何防止这种行为?
示例:http://www.matthewgatland.com/games/takedown/play/web/audiofail.html
window.AudioContext = window.AudioContext||window.webkitAudioContext;
var context = new AudioContext();
var play = function (buffer, loop) {
var source = context.createBufferSource();
source.buffer = buffer;
if (loop) source.loop = true;
source.connect(context.destination);
source.start(0);
};
var load = function (url, callback) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
request.onload = function() {
context.decodeAudioData(request.response, function(buffer) {
callback(buffer);
}, null);
};
request.send();
};
var musicSound;
var thudSound;
load("res/snd/music0.wav", function (buffer) {
musicSound = buffer;
});
load("res/snd/thud0.wav", function (buffer) {
thudSound = buffer;
});
声音加载后,请致电:
play(musicSound, true); //start the music looping
//each time you call this, the music becomes quiet for a few seconds
play(thudSound, false);
答案 0 :(得分:1)
在将其放入网站之前,您可能需要进行一些声音设计。我不知道你正在使用什么编辑器,但你可能想要一起编辑声音,以便它们的所有级别更接近原始循环声音的级别。这样他们的水平差异就不会引发自动增益减少。两种声音的组合太大声,因此两者的声音会降低较软声音的水平。因此,如果你将它们放在一起,那么当增益减少开始时,整体差异不应该那么大。