gpt4 book ai didi

java - 音频格式转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:36 25 4
gpt4 key购买 nike

我在转换 WAV 文件的音频格式时遇到问题。

我正在用我的麦克风录音,录音格式如下:PCM_SIGNED 44100.0 Hz,16 位,单声道,2 字节/帧

我想把上面的格式转换成,ULAW 8000.0 Hz,8 位,单声道,1 字节/帧

我正在使用下面的代码,

InputStream is = request.getInputStream(); 
AudioInputStream ais = AudioSystem.getAudioInputStream(is);
AudioFormat oldFormat = ais.getFormat();
AudioFormat newFormat = new AudioFormat(AudioFormat.Encoding.ULAW, 8000, 8, 1, 1, 8000, false) ;
AudioInputStream lowResAIS = AudioSystem.getAudioInputStream(newFormat, ais); //Getting the below Exception on this line

我收到以下错误,

java.lang.IllegalArgumentException:不支持的转换:ULAW 8000.0 Hz,8 位,单声道,1 字节/帧,来自 PCM_SIGNED 44100.0 Hz,16 位,单声道,2 字节/帧,little-endian

谁能帮我解决这个问题!!!

非常感谢!!!

最佳答案

你看过documentation了吗? ?

Throws: IllegalArgumentException - if the conversion is not supported #see #getTargetEncodings(AudioFormat)

并非每个系统都会安装足够的编解码器来转换为您要求的特定格式。您假设您的格式可以,但它抛出异常,因为它无法转换为该格式。

您可以使用 getTargetEncodings 以编程方式检查给定格式的适用性,而不依赖于异常,然后如果您想要的输出格式不可用,则可以采取适当的措施(例如回退到另一个,向用户提供这是不可能的反馈,等等)。

关于java - 音频格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com