我正在尝试创建自己的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();
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的代码,但是Windows在尝试回放时给了我一个错误。我想象必须有一些开始和结束的字节序列,我需要将它们写入文件才能正确解码。那么,如何生成自己的.MP3文件?
在回答您的问题之前,让我解释一下数字音频和MP3的一些关键概念。
MP3是压缩的数字音频文件。原始格式的数字音频由音频“样本”组成。典型的44.1 kHz单声道(单通道)原始音频将具有44100个音频样本,每个样本的大小为16位。如果是立体声,则将有44100 x 2个样本,每个样本的大小为16位。请注意,一个5分钟的原始音频文件大小为50MB。
MP3是压缩音频。它采用复杂的压缩算法来减小音频的大小。因此,您无法以编写原始音频文件的方式编写。
有两种创建自己的MP3文件的方法。
(1)创建一个原始WAV文件,然后使用压缩库将其编码为MP3。您可以看一下这个答案是否有任何纯Java方法将.wav转换为.mp3?
(2)使用可接收原始样本的MP3压缩库。
希望能有所帮助。