引言


MIDI是一种以前很出名现在渐渐比较小众的音乐格式。不同于WAV,MP3等直接记录波形的音乐格式,这种格式记录了乐器的弹奏方法,因此占用空间更小。

MIDI的一些参数;

  • 最大同时播放乐器数:16

  • 备选乐器数:256

  • 常见后缀:RMI,MID


然而,在现在这种格式的在线播放却成了难题:
Playing MIDI usually uses the embed tag which requires the QuickTime plugin, or deprecated tag such as bgsound in IE, but not always work.


MidiPlayer就是解决这个问题的方法之一。


测试结果
Android 4.0.3 Webview
Android 5.1.0 Webview
Firefox 42

使用


1.引入相关文件
midi.min.js
若要实现不支持js的MIDI播放功能(使用Flash),则需将da.swf放在html文件的根目录。


2.使用
MidiPlayer('文件路径(必填)', '控制单元ID(必填)','是否要重复播放(true/false)','最大播放次数','结束时执行命令')
具体介绍见文档。

不足:


● The only event types supported by replayer.js are note on, note off, tempo change and program change
● There are currently only two instrument presets defined in synth.js - one for strings and a 'piano' one for everything else - and neither of them are particularly good (just a single volume-modulated sine wave).

演示



有听过的吗?此曲是“secret base”的结尾曲。(PS.自动切换一直没搞明白,因此做成分别的两个了。)

Github


https://github.com/chenx/MidiPlayer

没有回复

新增回复

用星号围住文章(例如 *word*)会以粗体样式显示,而用下划线围住文章(例如 _word_)会以带下划线的方式显示
电子邮件地址将不会被显示,而仅将被用于发送电子邮件通知

为了阻止机器人提交垃圾回复,请在相应的文本框中输入你在下面的图片中所看到的字符串。只有在你输入的字符串和图片中的字符串吻合的情况下,你的回复才能被成功提交。请确认你的浏览器支持、并且已经开启了cookies功能,否则的话,你的回复无法被正确地验证。
CAPTCHA