单击暂停按钮时的fadeOut()声音

单击暂停按钮时的fadeOut()声音

问题描述:

单击暂停按钮时如何使声音淡出?单击暂停按钮时的fadeOut()声音

<script> 
var sounds = [ 
    "sounds/royksopp.mp3", 
    "sounds/9thwonder.mp3", 
    "sounds/thisbeat.mp3", 
    "sounds/mosdef.mp3", 
    "sounds/bewater.mp3", 
    "sounds/boutdre.mp3", 
    "sounds/masterflash.mp3", 
    "sounds/2ep.mp3", 
    "sounds/drewestcoast.mp3", 
    "sounds/poetry.mp3", 
    "sounds/mfdoom.mp3", 
    "sounds/oizo.mp3", 
]; 

function StartOrStop(audioFile) { 
    srcAudio = sounds[Math.floor(Math.random() * sounds.length)]; 
    var audie = document.getElementById("myAudio"); 
    audie.addEventListener('ended', function() { 
     this.currentTime = 0; 
     this.play(); 
    }, false); 

    if (audie.paused == false) { 
     audie.pause(); 
    } else { 
     audie.src = srcAudio; 
     audie.play(); 
    } 
} 
</script> 

然后,我把它叫做:

<audio id="myAudio"></audio> 

<button id="idj-play-button" onclick="StartOrStop()" class="btn btn-lg"><i class="glyphicon glyphicon-play"></i> 
</button> 

<button id="idj-pause-button" onclick="StartOrStop()" class="btn btn-lg hide"><i class="glyphicon glyphicon-refresh"></i> 
</button> 

我需要改变我的if/else语句audie.pause()什么?我试过audie.animate({volume: 0}, 1000);,但没有奏效。

谢谢。

+0

使用'.animate'您需要的音频是一个jQuery元素:'$(audie).animate(...)' – davidchoo12

+0

如果我使用'$(audie).animate({volume:0},500);'而不是'audie.pause();'它成功将音量降低到0,但是当我再次单击播放按钮时,没有任何反应。 – Rui

试试这个:

<script> 
    var sounds = [ 
     "sounds/royksopp.mp3", 
     "sounds/9thwonder.mp3", 
     "sounds/thisbeat.mp3", 
     "sounds/mosdef.mp3", 
      "sounds/bewater.mp3", 
      "sounds/boutdre.mp3", 
      "sounds/masterflash.mp3", 
      "sounds/2ep.mp3", 
     "sounds/drewestcoast.mp3", 
      "sounds/poetry.mp3", 
      "sounds/mfdoom.mp3", 
     "sounds/dreams.mp3", 
     "sounds/oizo.mp3", ]; 

    function Start(audioFile) { 
     srcAudio = sounds[Math.floor(Math.random()*sounds.length)]; 
     var audie = document.getElementById("myAudio"); 
     audie.addEventListener('ended', function() { 
     this.currentTime = 0; 
     this.play(); 
     }, false); 

       $(audie).animate({volume: 0.9}, 0); 
       audie.src = srcAudio; 
       audie.play(); 

      } 

    function Stop(audioFile) { 
     var audie = document.getElementById("myAudio"); 

       $(audie).animate({volume: 0}, 400); 

      } 
</script> 

HTML:

<audio id="myAudio"></audio> 

<button id="idj-play-button" onclick="Start()" class="btn btn-lg"><i class="glyphicon glyphicon-play"></i> 
</button> 

<button id="idj-pause-button" onclick="Stop()" class="btn btn-lg hide"><i class="glyphicon glyphicon-refresh"></i> 
</button> 

audie.animate({volume: 0}, 1000);只有当你有jQuery时才能工作。

你可以做这样的修改:

if (audie.paused == false) { 
    let interval = setInterval(() => { 
     if (audie.volume == 0) { 
      audie.pause(); 
      clearInterval(interval); 
     } 
     audie.volume -= 0.05; 
    }, 800); 
} 
+0

嗨,当我点击暂停按钮时,它会降低音量,但仍然可以听到,非常低。当我再次点击播放按钮时,没有任何反应。 – Rui