我有一个midi文件,我想在网页上播放该文件,目前我正在使用midi.js播放器进行播放,但它不适用于移动浏览器。
请指导我如何播放该文件,否则我如何播放midi或将其转换为mp3
这是我的代码
$data = fopen ($midi, 'rb');
$size= filesize($midi);
$contents = fread ($data, $size);
fclose($data);
$encoded= base64_encode($contents);
$encode = "'data:audio/midi;base64,".$encoded."=='";
最后将base64值传递给midi.js
答案 0 :(得分:2)
猜猜你在Linux机器上...... 最简单的方法是以胆怯的方式播放它并输出输出ffmpeg:
timidity song.mid -Ow -o - | ffmpeg -i - -acodec libmp3lame -ab 64k song.mp3
答案 1 :(得分:1)
我遇到类似的问题,MIDI.js无法在移动浏览器中使用。事实证明,我已经包含了ogg文件但是缺少了mp3(由于某种原因,MIDI.js只提供了og版本的synth_drum)。
可以在https://github.com/gleitz/midi-js-soundfonts找到所有128种通用MIDI声音的乐器文件。
答案 2 :(得分:1)
如果你正在使用Linux,请使用avconv而不是ffmpeg,因为ffmpeg已被弃用:
timidity input.midi -Ow -o - | avconv -i - -acodec libmp3lame -b 64k output.mp3
或跛脚:
timidity -Ow -o - input.midi | lame - output.mp3
答案 3 :(得分:0)
FluidSynth + FFmpeg
胆怯的替代选择:
fluidsynth -a alsa -T raw -F - /usr/share/sounds/sf2/FluidR3_GM.sf2 MIDI_sample.mid |
ffmpeg -f s32le -i - MIDI_sample.mp3
在Ubuntu 20.04,FluidSynth 2.1.1-2和以下MIDI文件上进行了测试:https://en.wikipedia.org/wiki/File:MIDI_sample.mid
答案 4 :(得分:0)
这对我有用:
timidity my_midi_file.mid -Ow -o - | lame - -b 64 my_converted_midi.mp3
在 ubuntu 18.04 上运行
答案 5 :(得分:-2)
Audacity是一个开源音频转换器。