以编程方式创建 MP3

Programmatically Create MP3

我正在尝试创建自己的 MP3 音频文件。我该怎么做?

File mySong = new File("generated song.mp3"); 
FileOutputStream song = new FileOutputStream(mySong);
for (int n = 0; n < 3000; n++){
    song.write(n % 256);
}
song.close();

我尝试了上面的代码,但是 Windows 在我尝试回放时出现错误。我想必须有一些开始和结束的字节序列我需要写入文件才能正确解码。那么,我怎样才能生成自己的 .MP3 文件呢?

在回答您的问题之前,让我解释一下数字音频和 MP3 的一些关键概念。

MP3 是压缩的数字音频文件。原始形式的数字音频由音频 'samples' 组成。典型的 44.1 kHz 单声道(单通道)原始音频将具有 44100 个音频样本,每个样本大小为 16 位。如果是立体声,则将有 44100 x 2 个样本,每个样本大小为 16 位。请注意,5 分钟的原始音频文件大小为 50MB。

MP3 是压缩音频。它采用复杂的压缩算法来减小音频的大小。因此,您不能像编写原始音频文件那样编写。

有两种创建自己的 MP3 文件的方法。

(1) 创建原始WAV 文件,然后使用压缩库将其编码为MP3。你可以看看这个答案Is there any pure java way to convert .wav to .mp3?

(2) 使用接受原始样本的 MP3 压缩库。

希望对您有所帮助。