-2
3 回答
1
你好 这是一个很好的问题 我看到这个问题之后尝试自己解决了以下 但是由于我不是专业的 以下仅供参考:
先说结论 本地纯html文件 我没有实现 受限于浏览器的orb跨资源访问安全限制 无法直接引用导入本地sf2文件 也无法加载js文件。要想前端实现必然是依靠js库 而在线js库的加载被阻止那自然没办法了。
本地原生单html我只实现通过浏览器自带的Web Audio API实现对midi的解析然后使用buffer捕获音频信号最后合成 但是本质是通过模拟各种波比如正弦波,导致效果不是一般的差 且只支持单轨标准midi文件 任何其他非标准midi会有错误 比如缺少文件头的无法读取 多轨会丢失速度信息 其他轨未必会正常加载
我觉得的解决方案是:python使用flask写一个简单的本地服务端 通过服务端进行文件提供来绕过安全限制进行调用 但如果这样了为什么不直接写一个后端进行处理而把处理放在前端呢 事实上我看大部分类似功能转换网站都是依靠后端进行处理的 如果这样就方便的多只需要调用两个python模块就行了
有空我也会继续研究此问题。
本人非专业 仅从兴趣角度出发研究 以上想法仅供参考
Skyisland
XP 193
回答于 10/5/25, 12:11 PM
0
补充 之前修补过别的程序可以调用外部js 可能是我哪里打开方式不对或者使用了别的框架 我再去重新看看他的实现方式
Skyisland
XP 193
回答于 10/5/25, 12:35 PM
-1
好厉害的样子,新人完全看不懂啊,不同的格式有什么不同的区别吗
Happy_756980
XP 9
回答于 10/5/25, 12:29 PM
您的回答
登录以回答这儿是 MidiShow 问答区,欢迎您请教或帮大家解决关于音乐创作、MIDI 应用、MIDI 技术等音乐相关的问题。
问答区积分规则如下:
- 提问、回答或自问自答积分均不变
- 问题被赞成 : +10
- 问题被反对 : 提问者 -2,点击反对者不扣分
- 回答被赞成 : +10
- 回答被反对 : 回答者 -2,点击反对者 -1
- 提问者选出满意回答 :回答者 +15 ,提问者 +2
参与问答前请阅读:问答区玩法规则