以编程方式创建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是压缩的数字音频文件。 原始forms的数字音频由音频“样本”组成。 典型的44.1 kHz单声道(单声道)原始音频将具有44100个音频样本,每个样本大小为16位。 如果是立体声,那么将有44100 x 2个样本,每个样本大小为16位。 请注意,5分钟的原始音频文件大小为50MB。

MP3是压缩音频。 它采用复杂的压缩算法来减小音频的大小。 因此,您无法编写原始音频文件的编写方式。

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

(1)创建原始WAV文件,然后使用压缩库将其编码为MP3。 你可以看看这个答案是否有任何纯java方式将.wav转换为.mp3?

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

希望有所帮助。