0

在谷歌浏览器中:

播放一个 .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);
4

1 回答 1

1

在将其放入您的网站之前,您可能需要进行一些声音设计。我不知道您在使用什么编辑器,但您可能希望将声音一起编辑,以使它们的整体水平更接近原始循环声音的水平。这样一来,它们的电平差异就不会那么显着,从而触发自动增益降低。两种声音的组合太大声,因此两者中较大的声音会降低较柔和的声音的水平。因此,如果您将它们在水平上拉得更近,那么当增益减少开始时或如果开始减少,整体差异不应该那么大。

于 2013-11-28T01:31:00.990 回答