每当麦克风听到打响指的声音时,我都会尝试加 1。
var sketch = function (p) {
with(p) {
var mic;
var vol;
var count = 0;
p.setup = function() {
createCanvas(windowWidth, windowHeight);
mic = new p5.AudioIn();
mic.start();
};
p.draw = function() {
background('pink');
vol = mic.getLevel(); // level is between 0 and 1
vol = vol * 100;
if (vol > 6) {
count += 1;
text(count, 60, 300);
//if (count += 1) {
// vol = 0;
//}
} else {
text(count, 60, 300);
}
};
}
};
let node = document.createElement('div');
window.document.getElementById('p5-container').appendChild(node);
new p5(sketch, node);
body {
background-color:#efefef;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js"></script>
<div id="p5-container"></div>
问题: 使用我当前的代码,它会继续计算手指弹响的持续时间。我如何编写此代码以在每次手指弹奏时仅将 1 加到 var 计数中
最佳答案
如果您在音量超过 6 时进行计数,那么您需要一个标志来了解音量何时回落到该阈值以下。
所以设置一个变量如下:
var waitingForVolumeIncrease = true;
然后在您的代码中,当您增加计数时,也将标志设置为 false。
添加另一个条件来检查音量是否小于 6 以将标志重置为真。
最后,您只想在标志设置为 true 时增加计数,因此您需要更新检查以确保标志设置为 true。
关于javascript - 我怎样才能每次 vol > 6 时以 1 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56194699/