У меня есть простая программа для записи звука с микрофона в 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 () во второй раз.
Кто-нибудь знает, почему это происходит?