Bonjour,
je cherche un moyen de créer un VU-mètre comme dans VLC. Est ce que quelqu'un à une idée de comment je dois m'y prendre?
Merci d'avance
:mur:
Version imprimable
Bonjour,
je cherche un moyen de créer un VU-mètre comme dans VLC. Est ce que quelqu'un à une idée de comment je dois m'y prendre?
Merci d'avance
:mur:
Essaie de regarder du coté de la suite de composants Steel Series qui devrait contenir de quoi te ravir.
Le blog du Développeur: http://harmoniccode.blogspot.com/sea...el/steelseries
Le repo Maven du projet: https://oss.sonatype.org/index.html#nexus-search;quick~steelseries
Ok merci je vais y jeter un coups d'oeil!
Merci!
Cette bibliothèque a vraiment l'air pas mal du tout! Le seul problème c'est que je n'arrive pas a drag et dropper de la pallette vers l'endroit ou j'aimerai la mettre car netbeans m'affiche ce message d'erreur :
java.lang.ClassNotFoundException: org.pushingpixels.trident.ease.TimelineEase
at org.netbeans.modules.form.project.ProjectClassLoader.findClass(ProjectClassLoader.java:178)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Caused: java.lang.NoClassDefFoundError: org/pushingpixels/trident/ease/TimelineEase
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.netbeans.modules.form.project.ClassPathUtils.loadClass(ClassPathUtils.java:98)
at org.netbeans.modules.form.MetaComponentCreator.prepareClass0(MetaComponentCreator.java:1322)
at org.netbeans.modules.form.MetaComponentCreator.access$800(MetaComponentCreator.java:87)
at org.netbeans.modules.form.MetaComponentCreator$4.run(MetaComponentCreator.java:1289)
at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:293)
at org.openide.util.Mutex.doEventAccess(Mutex.java:1361)
at org.openide.util.Mutex.readAccess(Mutex.java:320)
at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:276)
at org.netbeans.modules.form.MetaComponentCreator.prepareClass(MetaComponentCreator.java:1285)
at org.netbeans.modules.form.MetaComponentCreator.createComponent(MetaComponentCreator.java:130)
at org.netbeans.modules.form.HandleLayer$NewComponentDrag.end(HandleLayer.java:3132)
at org.netbeans.modules.form.HandleLayer$NewComponentDropListener.drop(HandleLayer.java:3307)
at java.awt.dnd.DropTarget.drop(DropTarget.java:434)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:519)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:832)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:756)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:30)
at java.awt.Component.dispatchEventImpl(Component.java:4593)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4356)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4207)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:680)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:653)
at java.awt.EventQueue$2.run(EventQueue.java:651)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:650)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:137)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
==>
Help!!!:aie:
Bah il ne trouve pas une classe spécifique portant le nom de TimelineEase contenu dans un package du nom de org.pushingpixels.trident.ease
Il s'agit de l'API trident, que le développeur de SteelSeries cite comme dépendance dans ses posts.
Voici où récupérer l'API Trident: http://kenai.com/projects/trident/pages/Home
A egalement mettre dans ton classpath.
Ok merci!
Je vais regarder ça!
Super, le graphique (interface) fonctionne mais maintenant je n'arrive pas à faire le code pour aller recherche la valeur que je dois envoyer dans le VU-Mètre à partir des librairies javax.sound.sample ....
Une idée??
Thank's
:ccool:
Quel type de jauge as tu utilisé?
Sinon dans la théorie, il faut procéder de la façon suivante
1 - Créer la jauge dans l'EDT
2 - Lancer le traitement audio dans un thread à part.
3 - Mettre à jour la jauge depuis le thread gérant la partie audio en pensant bien à utiliser la méthode SwingUtilities.invokeLater(Runnable r) pour englober les ordres de mise à jour du composant.
Cf http://gfx.developpez.com/tutoriel/j...ing-threading/
J'utilise la linearBargraph de steelseries...
NB : Qu'entendez-vous par EDT?
Dans ce cas pour modifier sa valeur il suffit de passer par la méthode setValue.
Pour comprendre ce qu'est l'EDT je te conseille la lecture du tutoriel dont j'ai donné le lien dans mon message précédent.
Enfin pour la partie utilisation de JavaSound: http://www.developer.com/java/other/...troduction.htm