Pregunta

Pensé que esto sería algo fácil de hacer, pero ninguna cantidad de búsqueda en Google ha encontrado ninguna solución.

He escrito una solicitud para un cliente que se ejecuta en pantalla completa y permite al usuario navegar a través de libros educativos para ayudar a enseñar a los niños a leer. Hasta ahora tan bueno. Algunas frases de los materiales mostrados se leen al usuario y, de nuevo, hasta ahora todo bien. Normalmente, estos sonidos se leen en el volumen del sistema. (es decir, a cualquier volumen se reproduciría cualquier otro sonido del sistema).

El cliente, sin embargo, ahora quiere que el usuario pueda ajustar el volumen en el programa . Tengo la interfaz de usuario y el procesamiento final de ese trabajo, pero me cuesta ajustar el volumen de los clips que se reproducen de manera significativa. En este momento tengo una configuración original que implica leer la ganancia original del clip y luego ajustarla hacia arriba o hacia abajo para cada clip. Si bien esto ajusta el volumen, no parece hacerlo en relación con el volumen del sistema: todos los sonidos son mucho más silenciosos que el volumen del sistema.

Entonces, mi pregunta realmente es: ¿cómo sugieres controlar el volumen del sonido dentro de un programa? Toda mi investigación no ha resultado significativa, lo que implica que es un poco difícil o incluso imposible. , pero eso no parece correcto.

Oh, detalles: estoy leyendo en WAV como AudioInputStreams y reproduciéndolos como java.sound.sampled.Clip. Estoy controlando la ganancia usando FloatControl.Type.MASTER_GAIN. (FloatControl.Type.VOLUME no es compatible). Estoy atascado con Java 1.4.

¿Fue útil?

Solución

También puede ver si hay una versión anterior de Java Media Framework (JMF) que admita Java 1.4 ... podría proporcionarle un entorno más rico para trabajar con audio.

Aparte de eso, usted dice que está atrapado en 1.4 ... puede ver si hay alguna forma de actualizar a Java 5 o 6, aunque es posible que desee probar cualquiera de estos primero en su máquina local para ver si realmente ayudan a alguno.

Creo que una última sugerencia es encontrar algunos sitios de desarrollo de juegos Java y publicar su pregunta allí; Creo que habrían descubierto formas de evitarlo ... aunque también podrías obtener muchas respuestas de 'actualizar tu jvm' allí. :-)

Buena suerte.

Otros consejos

Esto es algo específico del sistema operativo, y tendrá que usar JNI o ?? J / Invoke o JNIWrapper o jna o ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top