我的目标是从表单(使用哈巴狗)接收音频文件,然后播放该音频文件。我不需要存储它,因为它只需要播放一次。对于上下文-我是nodeJS / express的新手。
我正在使用multer来接收文件。
我的哈巴狗表单代码允许用户将音频文件上传到defineIfSkit路由,如下所示:
form(action="/determineIfSkit" method="POST" enctype="multipart/form-data")
input(type="file" name="audioFile")
input(type="submit")
到目前为止,我的方法是接收文件,使用audio-buffer-from从中创建一个audioBuffer,然后使用音频播放来播放该缓冲区。我的require语句和defineIfSkit路由如下:
var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer();
var createBuffer = require('audio-buffer-from');
var play = require('audio-play');
...
router.post('/determineIfSkit', upload.single('audioFile'), (req, res, next) => {
var audioFile = req.file;
var audioBuffer = createBuffer(Buffer.from(audioFile.buffer));
play(audioBuffer);
...
});
运行此代码时,预期结果是它开始播放通过表单上传的歌曲。但是,相反,播放的是大声白噪声,这使我相信我完全不正确地执行了此操作。