我正在尝试将文件上传到云功能,使用Express处理那里的请求,但我没有成功.我创建了一个本地工作的版本:
服务器端js
const express = require('express');
const cors = require('cors');
const fileUpload = require('express-fileupload');
const app = express();
app.use(fileUpload());
app.use(cors());
app.post('/upload', (req, res) => {
res.send('files: ' + Object.keys(req.files).join(', '));
});
Run Code Online (Sandbox Code Playgroud)
客户端js
const formData = new FormData();
Array.from(this.$refs.fileSelect.files).forEach((file, index) => {
formData.append('sample' + index, file, 'sample');
});
axios.post(
url,
formData,
{
headers: { 'Content-Type': 'multipart/form-data' },
}
);
Run Code Online (Sandbox Code Playgroud)
当部署到云函数时,这个完全相同的代码似乎会中断,其中req.files未定义.有谁知道这里发生了什么?
编辑
我也有一个使用multer,在本地工作得很好,但一旦上传到云功能,这让我得到一个空数组(相同的客户端代码):
const app = express();
const upload = multer();
app.use(cors());
app.post('/upload', upload.any(), (req, res) => {
res.send(JSON.stringify(req.files));
});
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个个人项目:在Flash中创建一个用于实时音频合成的库.简而言之:用于连接波形发生器,滤波器,混频器等的工具,并为声卡提供原始(实时)数据.像max/msp或Reaktor之类的东西.
我已经有了一些工作,但我想知道我写的基本设置是否正确.我不想在以后遇到问题迫使我改变我的应用程序的核心(虽然这总是会发生).
基本上,我现在所做的是从链的末尾开始,在(原始)声音数据"输出"(到声卡)的地方.要做到这一点,我需要将一块字节(ByteArrays)写入一个对象,并获得该块,我要求连接到我的'Sound Out'模块的任何模块给我他的块.该模块对连接到其输入的模块执行相同的请求,并且一直发生,直到达到链的开始.
这是正确的方法吗?如果有反馈循环,或者如果有另一个模块没有输出,我可以想象遇到问题:如果我要在某处连接一个spectrumanalyzer,那将是链中的死胡同(一个没有输出的模块,只是一个输入).在我目前的设置中,这样的模块无法工作,因为我只从声音输出模块开始计算.
有没有人有这样的编程经验?我对正确方法的一些想法非常感兴趣.(为清楚起见:我不是在寻找特定的Flash实现,这就是为什么我没有在flash或actionscript下标记这个问题)
我正在尝试实现可以在任何给定时刻重新启动的音量包络,即使它已经处于参数运动的中间但我无法弄清楚如何在没有点击结果音频的情况下这样做(这似乎是关于它们何时发生,有些不规则).
这甚至可能吗?我看到AudioParam.cancelScheduledValues() "取消对AudioParam的所有预定的未来更改",但我不确定当前正在进行的更改会发生什么.
这是我用来启动/重启音量信封的代码.
var now = context.currentTime;
var currentVol = gain.gain.value;
gain.gain.cancelScheduledValues(now);
gain.gain.setValueAtTime(currentVol, now);
gain.gain.exponentialRampToValueAtTime(1, now + volAttack);
gain.gain.exponentialRampToValueAtTime(0.000001, now + volAttack + volDecay);
Run Code Online (Sandbox Code Playgroud) 我在HTML画布上绘制线条,并使用不太精确的2d阵列(代表10x10像素的块),其中我使用Bresenham算法绘制线条以存储线条ID,因此我可以使用该数组来查看哪个线被选中.
这是有效的,但我希望它更准确 - 不是我使用的10x10大小(我喜欢我不必点击该行),但当我绘制该数组的表示而不是我的实际画布,我看到有很多10x10块没有填充,即使线穿过它们:

有更好的解决方案吗?我想要的是捕获实际线路经过的所有网格块.
javascript ×3
audio ×1
bresenham ×1
canvas ×1
express ×1
firebase ×1
real-time ×1
typescript ×1