我想用JavaScript生成一系列MIDI音符,然后播放它。许多插件支持MIDI,但我不知道任何支持“data:”URL。生成MIDI内容并不是什么大问题 - 但是将这些内容提供给玩家是。任何人都知道如何做到这一点 - 如果不是一般的话,那么至少对于像QuickTime这样的特定插件来说呢?在javascript中生成MIDI
回答
听起来最简单的方法是将MIDI数据传递给一个PHP脚本,然后返回输入。 然后您可以使用“yourscript.php?your-midi-data”而不是“data:your-mini-data”。
非常整洁的问题。最近我使用base64编码图像进行了很多工作,并且经常使用http://www.greywyvern.com/code/php/binary2base64进行图像编码。我只是试图转换一个MIDI文件,并将base64文本流转换为HTML格式,并且在Firefox中表现得很好(令我惊讶)。下面的代码(与简洁,删除了Base64编码流):
<embed
autostart="true"
loop="false"
volume="100"
hidden="false"
src="data:audio/x-midi;base64,abc...."
></embed>
我不知道这是可能的从二进制图像去JS为Base64,但我怀疑从MIDI去可能。这是一个开始。
你可能想看看我的以下博客文章。这是关于一个图书馆,正是你所要做的,客户端。请注意,浏览器中的跨浏览器MIDI再现性并不是真的一致,但。
http://sergimansilla.com/blog/dinamically-generating-midi-in-javascript/
除了使用Javascript(见塞吉的帖子),你可以使用Java与我的JavaScript到Java桥后备方法暴露出MIDI框架的部分:http://mudcube7.blogspot.com/2010/08/dynamic-midi-generation-in-browser.html
的QuickTime数据url和Firefox和Chrome一起工作(最近发布,没有测试版)你必须遵循quicktime website的指示:通过调用QT_WriteOBJECT
函数初始化QuickTime函数(我必须提供指向Beethoven mp3文件的初始有效src,以防止抱怨 - 也许这是没有必要的),注册听众详细说明在所述在获得回调函数qt_load后,调用document.movie1.SetURL(myDataURL)
方法。我在数据url中使用了base64编码:"data:audio/midi;base64,..."
。 (内容是由javascript生成的)。所有事情都很奏效:Play(),Stop()等等。最难的部分是阅读他们的纪念文档(注意它也有“HTML”部分)
链接不好... – milesaron 2016-12-23 03:15:45
- 1. 从Javascript生成现场MIDI
- 2. C#XNA生成MIDI
- 3. 生成的midi音符长度
- 4. 在JavaScript中生成php?
- 5. 在Javascript中模拟MIDI节拍时钟
- 6. 有没有人从TFRecode文件中用洋红生成midi是否成功?
- 7. Javascript MIDI文件播放器
- 8. 生成的JavaScript
- 9. PHP - 生成JavaScript
- 10. python与fluidsynth合成midi
- 11. 在javascript文件中生成url
- 12. 在javascript中生成变量名称
- 13. 在Sinatra帮助程序中生成JavaScript
- 14. 在JavaScript中生成多个随机数
- 15. 在JavaScript中从数组生成PDF
- 16. 在JavaScript中生成一个随机数
- 17. 下载Javascript生成的XML在IE6中
- 18. 在IE7中显示javascript生成的div
- 19. 在php生成的按钮中的JavaScript
- 20. Javascript生成的CFWindow不居中在Coldfusion
- 21. 用python代码在Javascript中生成Hmac
- 22. php在javascript中生成图像
- 23. 在python中生成javascript字符串
- 24. 在javascript中生成随机图像url
- 25. 生成在JavaScript中的表/ jQuery的
- 26. 在JavaScript中生成SVG图表
- 27. 如何在javascript中生成'h'x n?
- 28. 生成MIDI文件并播放而不保存到磁盘
- 29. 需要一个能够从Midi生成WAVE的库
- 30. Java MIDI:将MIDI键盘连接到默认合成器
Sergi,你的解决方案似乎不能解决主要问题。如果使用“嵌入”或“对象”,则无法控制播放。 QuickTime界面解决了这个问题。你可以从JavaScript完全控制它,甚至可以动态地生成和添加东西。它适用于数据网址。这是原始问题的一个重点。 – shurik 2011-01-29 11:58:42