javascript - 尝试计算通过麦克风拾取的声音之间的时间间隔

标签 javascript timer p5.js

我正在尝试计算麦克风听到的第一个声音和麦克风听到的第二个声音之间的时间量。

var mic;
var vol;
var myTimer = 0;
var myState = 0;
var count = 0;
var waitingForVolumeIncrease = false;
var crackDetected = false;
var m
var micSensitivity = 3;
var startTime, endTime;
var millisec;
var endMilliSec, startMilliSec;


function start() {
  startTime = new Date();
  startMilliSec = startTime.getMilliseconds();

  text(startMilliSec, 60, 375);
}

function end() {
  endTime = new Date();
  endMilliSec = endTime.getMilliseconds();

  text(endMilliSec, 60, 375);
}

function findDiff() {
  text(endMilliSec, 100, 380);
  text(startMilliSec, 140, 385);

  var timeDiff = endMilliSec - startMilliSec; //in ms

  text(timeDiff, 60, 100);
}



function setup() {
  createCanvas(windowWidth, windowHeight);

  mic = new p5.AudioIn();
  mic.start();
}

function draw() {
  background('pink');

  vol = mic.getLevel(); // level is between 0 and 1
  vol = vol * 100;

  switch(myState) {

    case 0:
      if ((vol > micSensitivity)&&(waitingForVolumeIncrease==false)) {
        start();
        waitingForVolumeIncrease = true;
        myState = 1;
      }
    break;

    case 1:
      if ((vol > micSensitivity)&&(waitingForVolumeIncrease==true)) {
        end();
        waitingForVolumeIncrease = false
        myState = 0;
      }
    break;

  }

  findDiff();

  text(waitingForVolumeIncrease, 60, 325)

  textSize(18);
  text("My volume is " + vol, 40, 550);
}

我想开始计算情况 0 中的毫秒数,然后计算情况 1 中的毫秒数,然后找出差异。然而,当我运行这段代码时,无论两个声音之间的间隔时间有多长,我每次都会得到 17 或 16 毫秒。我的代码哪里出了问题?

我的目标是监听滑板上的前轮和后轮每次撞到人行道上的裂缝,这样我就可以计算出每次裂缝之间的时间(以毫秒为单位),然后将其转换为您的行驶速度(以英里/小时为单位)

最佳答案

尝试使用 getTime而不是使用 getMilliseconds .

调用 getMilliseconds 只能获取相对于最后一整秒的毫秒数。

var startTime = new Date();
console.log("getMilliseconds: " + startTime.getMilliseconds());
console.log("getTime: " + startTime.getTime());
startTime.setMilliseconds(123);
console.log("getMilliseconds: " + startTime.getMilliseconds());
console.log("getTime: " + startTime.getTime());

关于javascript - 尝试计算通过麦克风拾取的声音之间的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56279410/

相关文章:

jQuery 显示和隐藏计时器

javascript - 在 p5.js 中遍历 JSON 数组

javascript - 如何将整个背景逆向移动到鼠标指针的光标 p5.js

javascript - 自定义 jquery 选择器在我的情况下不起作用

c# - 计划在每月 1 号运行的函数

javascript - 单击按钮后将输入掩码附加到新行中

c# - 计时器控制间隔

javascript - 修改 Javascript 对象中的属性

JavaScript:将未知数量的参数从一种方法传递到另一种方法

javascript - 后续调用 reloadData() 时, Angular 数据表有效负载格式不会更改