我想做的是,我是通过TargetDataLine类从麦克风捕捉音频,用套接字发送它,并通过SourceDataLine在另一边播放。问题是我用的麦克风只支持:
AudioFormat format = new AudioFormat(48000, 16, 1, true, true);我演的演讲者只支持:
AudioFormat format = new AudioFormat(32000, 16, 2, true, true);当我直接得到48千赫,并将它推到32千赫音频格式,声音是倾斜的,有没有办法将48千赫单声道声音转换为32千赫立体声?
发布于 2017-03-28 21:10:10
如果Java有一些内置的音频文件格式转换,您可以从音频教程线程上的"使用文件和格式转换器“文章中了解到这一点。
如果必须手动完成,请查看该页上的第一个代码示例,尤其要注意注释的要点。
//在这里,对// audioBytes数组中的音频数据做一些有用的事情.
如果您并行运行输入和输出行,则可以使用线性插值从48000行获取数据并将其发送到32000行。比例为3:2。
因此,对于输入中的3个PCM数据点,计算输出的2个PCM数据点。
对于输入,您将发送到out,并将in1/2和in 2/2的和发送到out1。
复制从单声道转换为立体声的值。
https://stackoverflow.com/questions/43057662
复制相似问题