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の音をフェードイン・フェードアウトさせるデモページ
コメントが承認されるまで時間がかかります。