Domanda

Avrei pensato che sarebbe stata una cosa facile da fare, ma nessuna quantità di ricerche su Google ha trovato soluzioni.

Ho scritto un'applicazione per un client che funziona a schermo intero e consente all'utente di sfogliare libri educativi per aiutare a insegnare ai bambini a leggere. Fin qui tutto bene. Alcune frasi dei materiali visualizzati vengono rilette all'utente e, di nuovo, finora tutto bene. Normalmente, questi suoni vengono letti al volume del sistema. (ad esempio, a qualunque volume verrebbe riprodotto qualsiasi altro suono di sistema.)

Il client, tuttavia, ora desidera che l'utente sia in grado di regolare il volume nel programma . Ho l'interfaccia utente e l'elaborazione in corso, ma non riesco a regolare il volume delle clip riprodotte in modo significativo. In questo momento ho una configurazione funky che prevede la lettura del guadagno originale della clip e la regolazione su o giù per ciascuna clip. Mentre questo regola il volume, non sembra farlo rispetto al volume del sistema - tutti i suoni sono molto più silenziosi del volume del sistema.

Quindi, la mia domanda è davvero: come suggerisci di controllare il volume del suono all'interno di un programma? Tutte le mie ricerche non hanno rivelato nulla di significativo, il che implica per me che è un po 'difficile o addirittura impossibile , ma questo non sembra giusto.

Oh, dettagli: sto leggendo nei WAV come AudioInputStreams e li sto suonando come java.sound.sampled.Clip. Sto controllando il guadagno utilizzando FloatControl.Type.MASTER_GAIN. (FloatControl.Type.VOLUME non è supportato.) Sono bloccato con Java 1.4.

È stato utile?

Soluzione

Potresti anche vedere se esiste una versione precedente di Java Media Framework (JMF) che supporterà Java 1.4 ... potrebbe fornirti un ambiente più ricco per lavorare con l'audio.

Oltre a questo, dici di essere bloccato in 1.4 ... potresti vedere se c'è un modo per aggiornare a Java 5 o 6, anche se potresti voler testare uno di questi prima sul tuo computer locale per vedere se effettivamente aiutano.

Immagino che un ultimo suggerimento sia quello di trovare alcuni siti di sviluppo di giochi Java e pubblicare lì la tua domanda; Penserei che avrebbero escogitato dei modi per aggirarlo ... anche se potresti anche ottenere molte risposte "aggiorna il tuo jvm" lì. : -)

Buona fortuna.

Altri suggerimenti

Questa è una cosa specifica del sistema operativo da fare e dovrai utilizzare JNI o ?? J / Invoke o JNIWrapper o jna o ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top