Estoy intentado obtener el audio de una tarjeta de sonido, para ello uso la llamada a la funcion. tdl.open(); donde: tdl es unTargetDataLine
Lo que tengo que hacer es leer ese audio y meterlo en dos StreamBuffer ya que lo necesito dos veces. En windows XP si llamo a esa funcion dos veces seguidas funciona sin problemas, pero en Windows 7 me esta dando una excepcion javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported. at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source) at com.sun.media.sound.AbstractDataLine.open(Unknown Source) at com.sun.media.sound.AbstractDataLine.open(Unknown Source) at com.indra.dicom.provider.voip.gestoraudio.MicrophoneSoundStream.start(MicrophoneSoundStream.java:217)
Investigando la decompilacion de java lo que veo es que en implOpen llama a una funcion nativa que devuelve un identificador, en el caso de Windows XP siempre devuelve un valor mayor que 0 pero en Windows 7 para la segunda vez que se llama devuelve 0 y se lanza la excepcion.
No si esto en bug de Java o Windows 7 ¿Alguien tiene alguna idea o le ha pasado algo parecido?
Hola Buenas
Estoy intentado obtener el audio de una tarjeta de sonido, para ello uso la llamada a la funcion.
tdl.open();
donde:
tdl es unTargetDataLine
Lo que tengo que hacer es leer ese audio y meterlo en dos StreamBuffer ya que lo necesito dos veces. En windows XP si llamo a esa funcion dos veces seguidas funciona sin problemas, pero en Windows 7 me esta dando una excepcion
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.indra.dicom.provider.voip.gestoraudio.MicrophoneSoundStream.start(MicrophoneSoundStream.java:217)
Investigando la decompilacion de java lo que veo es que en implOpen llama a una funcion nativa que devuelve un identificador, en el caso de Windows XP siempre devuelve un valor mayor que 0 pero en Windows 7 para la segunda vez que se llama devuelve 0 y se lanza la excepcion.
No si esto en bug de Java o Windows 7 ¿Alguien tiene alguna idea o le ha pasado algo parecido?
Gracias