OpenJDK volumen Cambio Clp

YoungDev:

Estoy importando código de Oracle JDK a OpenJDK (Java 8). El único problema izquierda a resolver es cómo cambiar el volumen de Java Clip (java.sound.sampled.Clip) ? Incluso después de horas de búsqueda no pude encontrar la manera de cambiar el volumen del clip.

Al utilizar Oracle JDK lo hice así:

FloatControl floatControl = (FloatControl) myClip.getControl(FloatControl.Type.MASTER_GAIN);
floatControl.setValue(myVolume);

También probé FloatControl.Type.VOLUME, pero que no es compatible.

Me gustaría simplemente para cambiar el volumen de un clip en lugar de volver a escribir mi sistema de audio completo utilizando otra clase / paquete.


La idea que tengo es multiplicar los datos de audio entrante con una floatque, o bien subir o bajar el volumen. Lo malo es que es probable que sea caro, ya que necesito para cambiar el volumen mientras se reproduce el audio en lugar de hacerlo una vez cuando se inicia el programa.


EDITAR : supongo que no es tan sencillo con el Clipya que no hay una única respuesta o un comentario. ¿Qué otra cosa podría utilizar a continuación, a un lado Clipde que es fácil de configurar y es ligero (como podría tener hasta 30 principales sonidos jugando a la vez)?


Kubuntu 19.04 en Linux 5.0.0-27
OpenJDK 1.8.0_222

Phil Freihofner:

Escribí AudioCue para este mismo propósito. Es gratis, y la licencia es BSD (open source). Un número de programadores de juegos en Java-Gaming.org lo han utilizado con buenos resultados.

Está configurado para seguir la API de clip muy de cerca, pero con características adicionales. Tiene volumen en tiempo real, el lavado, y las capacidades de frecuencia, y permite al usuario jugar a la superposición de las copias de la misma señal.

Sólo hay cinco archivos de clase, por lo que es bastante pequeña. De ellos, el uso de la clase AudioMixer es opcional, pero si usted tiene 30 sonidos a la vez, probablemente sería útil, ya que canaliza todo a una sola SourceDataLine en lugar de ejecutar una línea de salida para cada sonido.

Estoy feliz de ayudar con su puesta en marcha, o responder a cualquier pregunta.

Sí, los controles que Java proporciona para Clip son problemáticos. Mucho depende del sistema / hardware implicado, en cuanto a si se aplican o no. Y los controles tienden a tener pobres granularidad, solamente cambiar el volumen en los límites de amortiguamiento. tiendas AudioCue el audio interno como un .wav "calidad CD" y es granular abajo de la trama de audio única.

Otra alternativa a considerar es el proyecto github TinySound . Es un proyecto más grande que AudioCue, pero sigue siendo bastante pequeña, y funciona bien. No puedo recordar si tiene atenuadores en tiempo real para el volumen. Tal vez no. Su principal ventaja es que se puede manejar .ogg archivos comprimidos. Pero yo podría ser capaz de ayudar si es necesario utilizar la compresión.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=332512&siteId=1
Recomendado
Clasificación