Javascript缓慢减少音频元素的音量
javascript slowly decrease volume of audio element
audio元素播放音量:
audio.setVolume(.20)
在某一点上,我想要淡出音量,而不是让它突然被切断,所以本质上我想要
audio.setVolume(.15)
audio.setVolume(.10)
audio.setVolume(.05)
audio.setVolume(.03)
audio.setVolume(.01)
但是在这些变化之间需要一些非常短暂的延迟,这样它们是可听到的,我得到了我的淡出效果。正确的做法是什么?
谢谢!
你可以使用setInterval():
// Initial volume of 0.20
// Make sure it's a multiple of 0.05
var vol = 0.20;
var interval = 200; // 200ms interval
var fadeout = setInterval(
function() {
// Reduce volume by 0.05 as long as it is above 0
// This works as long as you start with a multiple of 0.05!
if (vol > 0) {
vol -= 0.05;
audio.setVolume(vol);
}
else {
// Stop the setInterval when 0 is reached
clearInterval(fadeout);
}
}, interval);
我会将setTimeout
包装在函数内部,以及选项。对于这个因子,0.01
将是一个安全的值,您不必知道或调整初始值。
function fadeVolume(volume, callback)
{
var factor = 0.01,
speed = 50;
if (volume > factor)
{
setTimeout(function(){
fadeVolume((audio.volume -= factor), callback);
}, speed);
} else {
(typeof(callback) !== 'function') || callback();
}
}
fadeVolume(audio.volume, function(){
console.log('fade complete');
});
一旦淡出完成,它将触发一个回调,您可以使用它来播放下一首歌曲。
你也可以使用这个鼠标键事件。
audio.on('keydown', function() {
// and here keep increasing or decreasing the volume, untill keyUp
})
作为查看,它是jQuery!你可以在工作中使用它。此外,音频标签是为div,其中包含音频标签!
相关文章:
- 调整<音频>元素
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- <的自定义进度条;音频>并且<进度>HTML5元素
- javascript函数包含两个元素和web音频api
- 如何在音频元素上使用React媒体合成事件监听器
- 第一次未播放HTML音频元素
- 正在尝试在HTML5中添加音频元素
- 音频HTML5检查所有音频元素是否已完全加载
- 使用现代化检测音频元素
- 当音频元素暂停时,AnalyserNode会继续发送数据
- 从音频元素获取音频样本
- 如何从音频上下文元素收集时间值
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 媒体记录器 API 通过 Web 音频 API(不是音频元素)播放
- HTML5 音频元素 - 某些 Android 浏览器错误报告的曲目长度
- HTML5 音频元素发送 2 次 http get 请求
- 当 HTML5 音频元素播放了一定百分比时运行函数
- 媒体元素 - 动态加载音频
- 如何让Chrome和/或Firefox在Karma测试中播放<音频>元素
- 是否可以使用WebAudioApi对HTML5视频元素音频输出进行后期处理