【发布时间】:2021-06-03 15:52:55
【问题描述】:
您好,我已经尝试解决这个问题一个多月了,但没有任何进展。 我正在尝试在浏览器中录制一些音频,然后将音频上传到谷歌云存储中。这些都很好,我可以录制音频并在谷歌云存储中播放。但是,无论我在下载文件时做了什么,我发现 RIFF 标头已丢失。 例如
'Expected "RIFF" string at 0',
'Expected "WAVE" string at 4',
'Expected "fmt " string at 8',
'Unknown format: 16904',
'chunk_size does not match file size'
我存储录制的音频的方式是 blob。我的前端是 React,后端是 Nodejs。所以我所做的就是将 blob 发送到后端。如下所示。并调用 readfile 将数据读入缓冲区
router.post("/audio", upload.any(), async (req, res) => {
const { Storage } = require("@google-cloud/storage");
const storage = new Storage();
const audioBucket = storage.bucket("xxxxxx");
const file = audioBucket.file("audio.wav");
fs.readFile(req.files[0].path, null, (err, data) => {
file.save(data, function (err) {
file.get().then(function (data1) {
console.log(data1);
});
});
}
【问题讨论】:
标签: node.js audio google-cloud-storage wav