정확하게 48000 샘플 속도, 24 비트 및 1 채널을 사용하는 마이크가 있습니다. 따라서이 데이터를 AudioSystem.isLineSupported()
에 입력하고 false
이 표시됩니다.Java 오디오가 올바른 인수로 TargetDataLine을 초기화하지 않습니다
24 개가 아닌 8 비트로 먹이를 먹는 것이 좋습니다. 하지만 오디오에 이상한 배경 잡음이있어, 내 생각이 아닌 것 같습니다.
질문 : 어떻게 진행되고 있는지 디버그 할 수 있습니까? 내가 먹이는 설정이 맞다는 사실을 알고 있습니다. 그래서 무엇이 될 수 있습니까? 내가 사용
코드 (예, 그것은 코 틀린이야) :
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()
}
}