如何在 javascript 中的所需时间停止录音机

how to stop audio recorder at desired time in javascript

///我的HTML

<button onclick="startRecording()" > Record </button>
<button onclick="stopRecording()" > Stop </button>

//这是我的 js 函数

function startRecording(){
  console.log("stop button clicked");
   .......
   .......
   rec.record();
   .......
   .......

   setTimeout( function(){ 
            console.log("10 seconds timeout");
            stopRecording();
          }  , 10000 );
}

function stopRecording(){
   console.log("start button clicked");
   .......
   .......
   rec.stop();
   .......
   .......
}

用户可以开始和停止录制,但我希望如果用户不单击停止按钮,则应在给定时间调用 stopRecording 函数,从而停止 recorder.I 在第一个函数中使用的 setTimeout如果用户不点击停止按钮,实现这个效果很好,

问题是,如果用户在给定时间之前单击停止按钮,则停止记录功能 运行 但在给定时间之后,setTimeout 再次调用停止记录功能。

我希望如果用户单击停止按钮,setTimeout 将不起作用。请帮我解决这个问题,还有,是否有可能获得开始录音的时间,我的意思是音频文件的时间,以秒为单位。提前致谢

去掉 stopRecording 函数中的超时,像这样:

var timeout_status = 0;

function startRecording(){
  console.log("stop button clicked");
   .......
   .......
   rec.record();
   .......
   .......

   timeout_status  = setTimeout( function(){ 
            console.log("10 seconds timeout");
            stopRecording();
          }  , 10000 );
}

function stopRecording(){
   console.log("start button clicked");
    window.clearTimeout(timeout_status);
   .......
   .......
   rec.stop();
   .......
   .......
}