Gambas France BETA


Pas de compte ? Incription

Régler le son

1
AuteurMessages
Foromus#1 Posté le 4/6/2010 à 19:38:00
Bonjour,

Je me demande comment faire pour régler le son depuis mon logiciel. J'ai fait une application en plein écran (en général, j'évite...), et si je veux régler le son, il faut que je ferme mon application, règle le volume, et relance. Un petit bouton + et un petit bouton -, juste dans le coin, ça me plairait bien....

Merci
manu#2 Posté le 4/6/2010 à 21:06:00
Avec Gambas ca roule !Salut Foromus :) Content de te lire ...

Pour regler le volume tu peux mettre un slider dans ta Form que tu appelle SldVolume par ex et dans ton code tu met :

1
PUBLIC SUB sldVolume_Change() Music.Volume = sldVolume.ValueEnd


Ca marche si tu utilises le composant gb-sdl-sound bien sur :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Foromus#3 Posté le 6/6/2010 à 10:58:00
Bonjour,
Merci beaucoup pour le tuyau.
Cela dit, j'ai bien le composant gb-sdl-sound (coché, donc, installé), mais...
Si je colle un slider sur ma feuille, il faudra que je lui mette les deux valeurs : Max et Min, et là, je mets quoi comme valeur ?...
A partir du moment où je connais ces deux valeurs, je peux toujours m'arranger pour renseigner une variable, avec un slider au autre chose.
Maintenant, peut-être que je pourrais aussi récupérer ma valeur actuelle de Music.Volume, et la modifier en conséquence, non ?
Par exemple, si je reprends mon idée de deux boutons, je pourrais mettre un bouton + qui incrémente Music.Volume, et un bouton - qui la décrémente, par exemple, de la valeurs de "1" à chaque clic ?
manu#4 Posté le 6/6/2010 à 19:35:00
Avec Gambas ca roule !La valeur de music.volume va de 0.0 (mini) à 1 (maxi). donc si tu met un Slider tu met 0 en mini et 1 en maxi.

C'est sure que tu peu mettre des boutons plus ou moins, c'est sur que tu peux récupérer la valeur dans une variable ou dans un contrôle...
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
spheris#5 Posté le 7/6/2010 à 15:07:00
Formus,
Dans l'absolue, fait ce qu'a dit manu (de 0 à 1)
Maintenant tu peux utiliser un coef (100 par exemple) il te suffira de jongler avec multiplié et divisé pour faire bouger ton slider par pas de 1 (STEP)
dans ce cas min et max seront 0 à 100.
;)
Foromus#6 Posté le 7/6/2010 à 15:23:00
Bonjour,

Oui, j'avais pensé à un truc de ce genre. J'ai même essayé de mettre une variable entre-deux : pas convaincant...
Je n'ai pas encore essayé avec un slider, parce qu'il faudra que je modifie mon graphisme. J'ai fait quelques essais, mais rien ne se passe.
Disons que ma "Music.value", quand je l'examine (avec un point d'arrêt par exemple), a bien la valeur 1. Je remarque aussi que, quelque soit le niveau sonore affecté à ma machine - le volume que je règle par le slider dans le tableau de bord, et bien, dès que je lance mon application, je retrouve systématiquement ma Music.value à 1. Que je la change ou pas, le volume reste le même.
Bon, peut-être que je me suis mal expliqué :
Dans mon appli, j'utilise quelques gadgets, càd, des sons.wav quand je clique sur un bouton par exemple, ou autre, à tel ou tel événement. Banal... Je n'ai pas vraiment besoin de changer mais voilà, pour peu que le niveau sonore soit resté à un niveau assez élevé (tout dépend de ce que j'ai fait avant), et je me dis que mes sons gueulent un peu trop fort. Comme j'ai décidé de faire un truc plein écran - histoire de voir ce que ça donnait, je n'ai plus accès aux tableaux de bord, c'est donc pour ça que j'avais envisagé de mettre un réglage son. En réalité, ce n'est pas nécessaire, c'est juste pour apprendre, pour bidouiller un peu....
En tous les cas, quoique j'impose à Music.Value, le son reste au même niveau...
micio#7 Posté le 7/6/2010 à 20:10:00
Simple certes mais ça semble fonctionne.


1
PUBLIC SUB btPlus_Click() Music.Volume += 0.05ENDPUBLIC SUB btMoins_Click() Music.Volume -= 0.05END
manu#8 Posté le 7/6/2010 à 21:55:00
Avec Gambas ca roule !Foromus,

music.volume regle le son du son joué, par defaut la valeur est a 1 c'est a dire le maxi du reglage de ta carte son. Mais si ta carte son est reglé au mini le Maxi du mini sera toujours le mini :)

pour regler le niveau de ta carte son tu peux faire comme ceci :

1
PUBLIC SUB Volume(Percent AS INTEGER)SHELL "amixer -q set Master playback " & Percent & "%"END



Amixer est un logiciel en ligne de commande qui gére les carte son par le biais des pilotes Alsa. Toutes les info sur amixer son ici :http://alsa.opensrc.org/index.php/Amixer


je ne l'est jamais fait mais c'est tiré de ce post : http://gambaslinux.forumactif.net/code-gambas-f1/controler-le-volume-de-votre-carte-sous-gb-vendredi-10-juillet-2009-2149-par-spheris-t21.htm
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
1