Question

J'aurais pensé que ce serait une chose facile à faire, mais aucune recherche sur Google n'a permis de trouver une solution.

J'ai écrit pour un client une application qui fonctionne en plein écran et permet à l'utilisateur de feuilleter des livres pédagogiques afin d'aider les enfants à lire. Jusqu'ici tout va bien. Certaines phrases des matériaux affichés sont lues à l'utilisateur et, encore une fois, tout va bien. Normalement, ces sons sont lus au volume du système. (c.-à-d. quel que soit le volume, tout autre son système serait joué.)

Cependant, le client souhaite désormais que l'utilisateur puisse régler le volume dans le programme . L’interface utilisateur et le traitement sont en train de fonctionner, mais j’ai du mal à régler le volume des clips en cours de lecture de manière significative. À l’heure actuelle, j’ai une configuration géniale qui consiste à lire le gain original du clip, puis à l’ajuster pour chaque clip. Bien que cela règle le volume, il ne semble pas le faire par rapport au volume du système - tous les sons sont beaucoup plus silencieux que le volume du système.

Alors, ma question est vraiment la suivante: comment suggérez-vous de contrôler le volume du son dans un programme? Toutes mes recherches n'ont donné aucun sens, ce qui me laisse supposer que c'est difficile, voire impossible. , mais ça ne me semble pas juste.

Oh, détails: je lis dans les WAV en tant que AudioInputStreams et les joue en tant que java.sound.sampled.Clip. Je contrôle le gain en utilisant FloatControl.Type.MASTER_GAIN. (FloatControl.Type.VOLUME n'est pas pris en charge.) Je suis bloqué sous Java 1.4.

Était-ce utile?

La solution

Vous pouvez également vérifier s'il existe une version plus ancienne de Java Media Framework (JMF) prenant en charge Java 1.4 ... qui pourrait vous fournir un environnement plus riche pour l'utilisation de l'audio.

En dehors de cela, vous dites que vous êtes bloqué dans la version 1.4 ... vous pouvez voir s'il existe un moyen de mettre à niveau Java 5 ou 6, bien que vous souhaitiez peut-être tester l'un de ces éléments en premier sur votre ordinateur local pour: voir si ils aident réellement tout.

Une dernière suggestion consiste à trouver des sites de développement de jeux Java et à y poser votre question. Je pense qu'ils auraient trouvé le moyen de contourner le problème ... même si vous pouvez également obtenir beaucoup de réponses de type 'upgrade your jvm'. : -)

Bonne chance.

Autres conseils

Ceci est une opération spécifique au système d'exploitation. Vous devez utiliser JNI ou J / Invoke. ou JNIWrapper ou jna ou ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top