Gambas France BETA

Connexion

Pas de compte ? Incription

Music

Ce sujet est résolu.

1
AuteurMessages
Jack#1 Posté le 18/3/2025 à 17:31:23
Music n'étant pas instanciabe, comment faites vous si vous souhaitez jouer deux sons simultanément ?
Pour un code démocratique nationalisons Gambas.
valaquarus#2 Posté le 18/3/2025 à 17:43:13
-- Unus Ex Altera --Je ne sais pas pour le caractère "simultané" mais on peut jouer plusieurs sons de durées différentes en "même temps", ensemble serait plus juste.
Perso je défini mes sons dans un module et j'appelle mes sons n'importe où par une simple commande :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
PRIVATE MonSon AS Sound 'Le composant gb.sdl2 doit être coché

PUBLIC SUB son(leSon AS STRING)

SELECT CASE leSon
CASE "beep"
TRY MonSon = Sound.Load("Sons/beep.ogg")
CASE "shade"
TRY MonSon = Sound.Load("Sons/shade.ogg")
CASE "camera1"
TRY MonSon = Sound.Load("Sons/camera1.ogg")
CASE "bell"
TRY MonSon = Sound.Load("Sons/bell.oga")
CASE "hilow"
TRY MonSon = Sound.Load("Sons/hilow.ogg")
CASE "Message1"
TRY MonSon = Sound.Load("Sons/Message1.ogg")
CASE "Message2"
TRY MonSon = Sound.Load("Sons/Message2.ogg")
CASE "OpenApp"
TRY MonSon = Sound.Load("Sons/OpenApp.ogg")
CASE "power-plug"
TRY MonSon = Sound.Load("Sons/power-plug.oga")
CASE "power-unplug"
TRY MonSon = Sound.Load("Sons/power-unplug.oga")
CASE "Warning"
TRY MonSon = Sound.Load("Sons/Warning.ogg")

END SELECT

TRY MonSon.Play() 'alors on joue le son

END

' Appel d'un son par la commande : MSon.son("beep"), par exemple

Sound et music sont issus de sdl2
Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
Jack#3 Posté le 18/3/2025 à 18:30:40
Merci,
y'a pas de monson.stop() ? Je suis obligé de passer par MonSon.volume = 0 ?
Pour un code démocratique nationalisons Gambas.
valaquarus#4 Posté le 18/3/2025 à 19:14:28
-- Unus Ex Altera --Tu peux simplement par un wait de la durée que tu souhaites. Si la durée est plus longue que ce que tu veux jouer tu définis un temps plus court.
Par exemple ton son dure 3 secondes tu peux soit le répéter soit l’interrompre avant la fin de sa durée effective.
Je ne suis pas clair :
j'ai un son de deux secondes que je veux écourter je fais joue_mon_son, wait 1 seconde ou au contraire je créer un boucle for next pour jouer plus longtemps :
1
2
3
4
FOR i = 1 TO une durée voulue
WAIT (le_temps_de_jeu_du_son)
MSon.son(MSon.sGong2)
NEXT

J'ai jamais été aussi fouillis, je dois être fatigué.

Je rajoute une image :
Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
vuott#5 Posté le 18/3/2025 à 19:47:25
Ne cedere ineluctabili possimus
Music n'étant pas instanciabe, comment faites vous si vous souhaitez jouer deux sons simultanément ?

y'a pas de monson.stop() ? Je suis obligé de passer par MonSon.volume = 0 ?

En reprenant la suggestion de Valaquarus d'utiliser le composant gb.sdl2.audio, je suggère également de lire ce paragraphe:

https://www.gambas-it.org/wiki/index.php/La_gestione_dei_file_audio_mediante_il_componente_gb.sdl2.audio#Gestione_dei_file_audio_mediante_le_Classi_Sound_e_Channels
« Vita non suavis esse potest, nec Mors amara. »
valaquarus#6 Posté le 18/3/2025 à 19:48:50
-- Unus Ex Altera --Ah que Ciao Vuott!
Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
vuott#7 Posté le 18/3/2025 à 19:56:01
Ne cedere ineluctabili possimusValaquarus, tibi dico salutem !
« Vita non suavis esse potest, nec Mors amara. »
valaquarus#8 Posté le 18/3/2025 à 20:23:02
-- Unus Ex Altera --Je crois que le site fourni par Vuott te donne de bonnes réponses en utilisant la class music :

Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
vuott#9 Posté le 18/3/2025 à 21:51:57
Ne cedere ineluctabili possimusSi vous voulez jouer "un" fichier MIDI, vous pouvez utiliser la Classe "Music" du composant gb.sdl2.audio:

https://www.gambas-it.org/wiki/index.php/Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio
« Vita non suavis esse potest, nec Mors amara. »
Jack#10 Posté le 19/3/2025 à 00:28:30
Merci Vuott, merci Valaquarus. Ca répond parfaitement à ma question.
Pour un code démocratique nationalisons Gambas.
1