我有一个 MP3 音频文件,我必须将其转换为 µ-law (8000/mulaw) base64 编码字符串。我尝试了不同的方法,但我无法做到这一点。但从一开始:
基于 mp3spi,我们可以将 MP3-File 读取到 AudioInputStream
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>mp3spi</artifactId>
<version>1.9.5.4</version>
</dependency>
这是我尝试使用的代码:
AudioFormat TARGET_FORMAT = new AudioFormat(
AudioFormat.Encoding.ULAW, 8000,
// Samplerate
8, // quantization
1, // mono
1, 8000, false);
AudioInputStream mp3Stream = AudioSystem.getAudioInputStream(mp3Data);
AudioInputStream converted = AudioSystem.getAudioInputStream(TARGET_FORMAT, mp3Stream);
String content = Base64.getEncoder().encodeToString(converted.readAllBytes());
不幸的是,生成的结果不适用于目标系统。目标系统本身正在工作,如果我只使用波形文件,一切都很好。
有人有解决方案吗?
问候托马斯