Привет!
Пытаюсь записать звук который идёт на выход в динамики.
Возможно ли это?
Вроде ограничений не нашёл. Нужно получить нужный
TargetDataLine и писать. Но сталкиваюсь с
IllegalArgumentException.
Код примерно такой:
(На синтаксис не обращайте внимания, это Kotlin)
audioFormat = AudioFormat(8000f, 8, 2, true, false)
mixerInfo = AudioSystem.getMixerInfo()
mixer = AudioSystem.getMixer(mixerInfo[0]) // перепробовал все миксеры
dataLineInfo = DataLine.Info(TargetDataLine::class.java, audioFormat)
dataLine = mixer.getLine(dataLineInfo) as TargetDataLine // IllegalArgumentException
dataLine.open()
dataLine.start()
AudioSystem.write(AudioInputStream(dataLine), AudioFileFormat.Type.WAVE, File("1.wav"))
Эксепшн при вызове
getLine:
java.lang.IllegalArgumentException: Line unsupported: interface TargetDataLine supporting format PCM_SIGNED 8000.0 Hz, 8 bit, stereo, 2 bytes/frame, little-endian
Перепробовал всевозможные форматы и миксеры.
Input-миксеры (т.е. микрофоны) работают нормально.
Output-миксеры не работают никак.