私は正確に48000サンプルレート、24ビット、および1チャンネルを使用するマイクを持っています。だから、私はAudioSystem.isLineSupported()
にこのデータを送り、false
を得る。Javaオーディオは正しい引数でTargetDataLineを初期化しません
私は24ビットの代わりに8ビットを入力してみてください。しかし、オーディオに奇妙な背景のヒスがあるので、私はそれが私のものではないと推測しています。
質問:何が起こっているのかをどのようにデバッグできますか?私は実際に給餌している設定が正しいことを知っています。それで何ができますか?私が使用している
コード(はい、それは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()
}
}