audioの再生時や一時停止時に音をフェードイン・フェードアウトするように実装してみます。
サンプルコード
再生時のフェードインはvolumeの値をsetInterval()で少しずつ上げて、一時停止時のフェードアウトはvolumeの値を少しずつ下げます。
HTML
<button id="play">再生</button> <button id="pause">一時停止</button>
JavaScript
var baseVol = 0.5; // audioのベースの音量 var fadeSpeed = 1500; // フェードイン・フェードアウトのスピード var audio = new Audio(); // audioの作成 audio.src = 'sound.mp3'; // 音声ファイルの指定 audio.load(); // audioの読み込み // audioの再生 document.getElementById('play').addEventListener('click', function() { audio.volume = 0; audio.play(); var start_func = setInterval(function() { audio.volume = audio.volume + (baseVol / 100); if(audio.volume >= baseVol - (baseVol / 100)) { audio.volume = baseVol; clearInterval(start_func); } }, fadeSpeed * baseVol / 100); }, false); // audioの停止 document.getElementById('pause').addEventListener('click', function() { var end_func = setInterval(function() { audio.volume = audio.volume - (baseVol / 100); if(audio.volume <= (baseVol / 100)) { audio.volume = baseVol; audio.pause(); clearInterval(end_func); } }, fadeSpeed * baseVol / 100); }, false);
audioの音をフェードイン・フェードアウトさせるデモページ
コメントが承認されるまで時間がかかります。