最近,项目需要把PCM编码的录音文件转为MP3格式。
通过学习,发现可以使用de.sciss.jump3r项目:
<dependency>
<groupId>de.sciss</groupId>
<artifactId>jump3r</artifactId>
<version>1.0.5</version>
</dependency>
测试代码:
public class LameTest {
private static Logger LOG = LoggerFactory.getLogger(LameTest.class);
@Test
public void encode() {
LameEncoder encoder = null;
try {
byte[] pcm = Files.readAllBytes(Paths.get("recordFiles/", "20190415_09_0016.wav"));
int r = ThreadLocalRandom.current().nextInt(1000);
Path file = Files.createFile(Paths.get("recordFiles/", "file_" + r + ".mp3"));
AudioFormat format = fileFormat(pcm);
encoder = new LameEncoder(format);
byte[] buffer = new byte[encoder.getPCMBufferSize()];
int bytesToTransfer = Math.min(buffer.length, pcm.length);
int bytesWritten;
int currentPcmPosition = 0;
while (0 <