Java 将 MP3 音频输入流转换为 µ-law

时间:2021-06-14 09:03:55

标签: java mp3 mu-law

我有一个 MP3 音频文件,我必须将其转换为 µ-law (8000/mulaw) base64 编码字符串。我尝试了不同的方法,但我无法解决这个问题。但从一开始:

基于 mp3spi,我们可以将 MP3 文件读取到 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());

不幸的是,生成的结果不适用于目标系统。 目标系统本身正在工作,如果我只使用波形文件,一切都很好。

有人有解决方案吗?

问候托马斯

0 个答案:

没有答案