gpt4 book ai didi

java - getAudioInputStream无法将[立体声,4字节/帧]流转换为[单声道,2字节/帧]

转载 作者:行者123 更新时间:2023-12-03 02:27:36 26 4
gpt4 key购买 nike

我正在使用javasound并具有格式的AudioInputStreamPCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
当target_format为AudioSystem.getAudioInputStream(target_format, original_stream)时,使用PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian会产生“IllegalArgumentException:不支持的转换”

是否可以在每个read()调用之后手动转换此流?如果是的话,怎么办?
通常,如何比较两种格式并判断是否可以转换?

最佳答案

是否可以在每个read()调用之后手动转换此流?如果是的话,怎么办?

我不确定您要做什么,但这似乎没有必要。实际创建音频输入流后,缓冲数据并进行格式转换会更有意义。

在我看来,您正在从立体声切换到单声道以尝试保存数据传输大小。您可以通过正确的编码(到GSM,mu-law或A-law)来实现相同的编码。请注意,您可能需要一个插件来实现此转换。此处的更多信息:
Java Sound Resources

可以在每次read()调用之后转换流,但是如果您的流不能转换,则不能转换。

通常,如何比较两种格式并判断是否可以转换?
您定义两种格式,然后使用AudioSystem检查是否可以进行转换。

boolean bConversionSupported = AudioSystem.isConversionSupported(targetFormat, sourceFormat);

关于java - getAudioInputStream无法将[立体声,4字节/帧]流转换为[单声道,2字节/帧],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837843/

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