gpt4 book ai didi

javascript - 暂停时暂停音乐淡入/淡出?

转载 作者:行者123 更新时间:2023-11-30 16:19:12 29 4
gpt4 key购买 nike

我有一个音乐脚本,但是当我按下空格又名暂停按钮时,我希望它暂停它已经播放的音乐,但我希望它像 spotify 一样以淡入/淡出的方式播放

这是我到目前为止的代码:

var play = true;

var myAudio = document.getElementById("music");

function onKeyDown(event) {
switch (event.keyCode) {
case 32: //SpaceBar
if (play) {
myAudio.pause();
play = false;
} else {
myAudio.play();
play = true;
}

break;
}
return false;
}

window.addEventListener("keydown", onKeyDown, false);

最佳答案

我认为使用 native API 不可能做到这一点。但是,您绝对可以创建一个可以执行此操作的辅助函数。您有权访问音量控件,因此您可以执行以下操作:

function fadeOut(song) {
if (song.volume === 0) {
play = false;
// Pause the song so it doesn't keep playing in the background
song.pause();
return;
}
// Set your fadeout interval here
song.volume -= someInterval;
// Return this function after some interval, and pass it the same song
return setTimeout(fadeOut, 100, song);
// Change the timeout interval for faster / slower fades
// Reverse this for a fade in effect
}

当你减小音量时,这是毫无意义的,这是每次调用此函数时音量减小的量。 setTimeout 间隔是我们经常调用此函数的方式。所以超时越快,音量变化越小,淡出声音就越“平滑”。请注意不要混淆这两个间隔。他们都做不同的事情。

编辑:您可能想要跟踪开始淡出时的音量,这样,您可以在淡入时返回到它。否则,您每次都会从静音变为最大音量,这不是很灵活或用户友好。

关于javascript - 暂停时暂停音乐淡入/淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997734/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com