音频格式转换
我在转换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
有人可以帮我解决这个问题!!!
万分感谢!!!
回答:
您看过文档了吗?
:IllegalArgumentException-如果不支持该转换#see
getTargetEncodings(AudioFormat)
并非每个系统都会安装足够的编解码器以转换为您要求的特定格式。您已经假设了,但是会引发异常,因为它无法转换为该格式。
您可以通过getTargetEncodings
编程方式检查给定格式的适用性,而无需依赖异常,然后如果您不希望使用所需的输出格式,则可以采取适当的措施(例如退回另一种格式,向用户提供有关这是不可能等)。
以上是 音频格式转换 的全部内容, 来源链接: utcz.com/qa/397468.html