0

Google Chrome の場合:

1 つの .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

これを Web サイトに組み込む前に、サウンド デザインを行う必要があるかもしれません。エディターに何を使用しているかはわかりませんが、全体のレベルが元のループ サウンドのレベルに近づくように、サウンドを一緒に編集することをお勧めします。そうすれば、自動ゲインリダクションをトリガーするレベルの差がそれほど劇的になることはありません。両方の音を組み合わせると大きすぎるので、大きい方が小さい方のレベルを下げます。したがって、それらをレベルで近づけると、ゲインリダクションが作動するとき、または作動する場合、全体的な違いはそれほど劇的ではありません.

于 2013-11-28T01:31:00.990 に答える