我有一个简单的程序,用于在Windows中录制由Node.js制作的麦克风声音。 我在执行它时遇到了一些麻烦。
在录制时,它可以完美运行并创建一个.wav文件。 但是我将其置于一个循环中并接受用户选项(作为带有菜单的程序)。 问题是,当我再次按下该键来录制另一个.wav文件时,我的程序会中断,而不会发出任何错误或警告。
我将这部分代码留在这里。
const fs = require('fs')
const record = require('node-record-lpcm16')
const inquirer = require('inquirer')
var file = fs.createWriteStream('test.wav', { encoding: 'binary' })
main()
async function main(){
var option =0
while(option!=1){
//take option
var option = await getOption()
switch (option){
case 0:
await startRecording() //Wait for user to press ENTER
record.start().pipe(file)
console.log("Recording audio")
await stopRecording() //Wait for user to press ENTER
record.stop()
console.log("Audio finished")
break;
case 1:
process.exit(0)
}
}
}
function startRecording()
{
const questions = [
{
name: 'key',
type: 'input',
message: 'Press enter to start recording'
}]
return inquirer.prompt(questions)
}
function stopRecording()
{
const questions = [
{
name: 'key',
type: 'input',
message: 'Press enter to stop recording'
}]
return inquirer.prompt(questions)
}
function getOption(){
const questions = [
{
name: 'option',
type: 'integer',
message: 'Select your option (0 or 1): ',
validate: function( value ) {
if (value.length) {
return true
} else {
return 'Select your option (0 or 1): '
}
}
}]
return inquirer.prompt(questions)
}
第二次打印stopRecording()函数的消息后,程序中断。
有人知道为什么会这样吗?
答案 0 :(得分:0)
当前代码中没有任何内容,指示错误。
您应该检查在option
上设置的值。您很可能在第3个循环中将其设置为1
并退出。
由于我们不知道您如何计算option
,因此您是唯一可以解决它的人。