javascript - 如何根据光标速度更改音量并使其流畅
问题描述
所以我想根据光标移动速度改变音频元素的音量。当你快速移动时,它会变得更响,但当你移动缓慢时,它会变得更安静。
但它并不流畅,你可以清楚地听到音量的变化。我需要它像 jquery volume animate 一样平滑:$("#audio").animate({volume: 1}, someAmountOfTime);
为了测量光标速度,我使用cursometer。
我创建了jsfiddle,您可以在其中听到音量的变化。您必须单击运行几次或一次,因为它不会自行播放。
HTML:
<audio id="audio" src="https://jirihulmak.cz/samples/beep.mp3" autoplay="autoplay"></audio>
jQuery:
$(window.document).cursometer({
onUpdateSpeed: function(speed) {
var currSpeed = parseInt(speed*1000) / 10000;
if (currSpeed >= 1) { // prevent volume more than 1 (causing error)
$('#audio')[0].volume = 1;
} else {
if (currSpeed < 0.1) { // I don't need it completely quiet
$('#audio')[0].volume = 0.1;
} else {
$('#audio')[0].volume = currSpeed;
}
}
}
});
解决方案
推荐阅读
- facebook - 如何在 Facebook 上发布自己的视频,使其不会自动播放?
- ios - SwiftUI 文本不会扩展到多行
- android - 使用 Kotlin DSL 发布库
- javascript - 使用 Weather API 并按日期排序
- xml - XSLT:复制 XML 的节点并更改命名空间
- oracle - 通过过程执行没有得到正确的输出
- mysql - Mysql加入同一张表而不反向
- ffmpeg - h264_mp4toannexb 过滤器在 ffmpeg 连接时无法接收输出数据包
- python - Regex expression to merge elements together
- django - Is there a way to determinate the type of request received in a Class Based View with Django Rest Framework?