Binary 从二进制文件创建mp3

Binary 从二进制文件创建mp3,binary,mp3,midi,Binary,Mp3,Midi,我有一个midi文件,转换成二进制文件 我知道我想用那个二进制文件做一个mp3,我怎么做呢 我使用php作为我的脚本语言 这是我将midi转换为二进制的代码 $filename = "flute.mid"; $handle = fopen($filename, "rb"); $contents = fread($handle, filesize($filename)); for ($i = 0; $i < strlen($contents); $i++) { $binary = sprin

我有一个midi文件,转换成二进制文件

我知道我想用那个二进制文件做一个mp3,我怎么做呢

我使用php作为我的脚本语言

这是我将midi转换为二进制的代码

$filename = "flute.mid";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
for ($i = 0; $i < strlen($contents); $i++) {
$binary = sprintf("%08d", base_convert(ord($contents[$i]), 10, 2));
echo $binary;
}
fclose($handle);
$filename=“fleet.mid”;
$handle=fopen($filename,“rb”);
$contents=fread($handle,filesize($filename));
对于($i=0;$i
除了转换为ASCII编码的二进制文件(这是无用的,只会使事情变得更加复杂(我不知道任何程序可以读取这种格式)之外,MIDI还包含事件(音符、乐器等),而MP3文件包含压缩的采样声音。因此,要将MIDI转换为MP3,您需要使用合成器从MIDI源生成采样声音,然后将采样音频数据压缩为MP3格式


要将MIDI合成音频,您可以查看Timmity++()之类的示例。要将音频压缩为MP3,可以使用例如LAME()。这两个程序都可以在许多Linux发行版上作为可安装的软件包找到(在Ubuntu上,软件包名称是timbity和lame;两者都在Universe软件包存储库中)。

请看将MIDI转换为二进制文件的第一件事。第二件事,你正试图把它直接转换成mp3

这样做是不可能的。Mp3是编码压缩格式,不能用这种方式创建。有时甚至尝试在记事本中打开mp3&然后不做任何更改,而是在末尾插入.mp3,以新名称另存为它。将创建与原始文件具有相同数据的mp3扩展名文件,但播放机不会播放该文件


因此,我的观点是,您必须研究一种编码方法来转换mp3中的MIDI。

将文件转换为ASCII编码的二进制文件的目的是什么?这将是更容易采取的文件,因为它是…如何,你可以指导我请…见我的回答下面的评论,关于使用Flash或HTML5 MIDI播放器,这将是非常耗时和复杂的,我唯一关心的是在线播放midi,我已经创建了一个嵌入式播放器,它在mozilla和explorer上工作,但在chrome上不工作。请遵循链接。如果您的目标只是在网页中播放midi,您可以使用Flash或HTML5 midi播放器(例如,或)。您使用的是Windows Media Player,因此它只适用于部分用户,而不是所有用户。Ale我使用midi js播放midi文件,它在浏览器上工作,但当我尝试使用手机播放时,它不工作可能手机缺少一些HTML5支持。那是什么手机?你有没有检查手机实际实现了HTML5的哪些部分?这可能是因为它没有HTML5声音支持。。。而且永远不要忘记,在每个平台上都有工作是一项艰巨的任务!