В Google Chrome:
Один файл .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);