我有一个使用 48000 采样率、24 位和 1 个通道的麦克风。所以我将这些数据输入AudioSystem.isLineSupported()
并得到一个false
.
我尝试输入 8 位而不是 24 位,它可以工作。但是音频中有一个奇怪的背景嘶嘶声,所以我猜这不是我的事。
问题:我怎样才能调试发生了什么?我知道我喂食的设置是正确的,那会是什么?
我正在使用的代码(是的,它是 Kotlin):
fun main(args : Array<String>) {
var line: TargetDataLine? = null
val thread = Thread(Runnable
{
val format = AudioFormat(48000f, 24, 1,
false, false)
val info = DataLine.Info(TargetDataLine::class.java, format)
if (!AudioSystem.isLineSupported(info)) {
System.out.println("Failed")
} else {
line = AudioSystem.getLine(info) as TargetDataLine
line?.open(format)
line?.start()
val ais = AudioInputStream(line)
AudioSystem.write(ais, AudioFileFormat.Type.WAVE, File("c:/temp/temp.wav"))
}
})
if (line != null) {
thread.start()
readLine()
line?.stop()
line?.close()
}
}