PDA

Voir la version complète : [NDS][Aide] PAlib, jouer une musique en boucle ?


sensei
10/04/2006, 12h23
Salut,

voila c'est simple, je veux juste savoir comment jouer une muisque en boucle lorsque celle ci se termine.

Merci

N64Francois
10/04/2006, 13h21
void PA_PlaySoundEx2 ( u8 PA_Channel,
const void * data,
s32 length,
u8 volume,
int freq,
s16 format,
BOOL repeat,
int repeatPoint
)

=> Joue une fois un son, mais en choisissant le format (fichier .raw)


Paramètres:
PA_Channel : Canal audio, de 0 à 7
data : Données du son
length : Longueur du son, avec (u32)sound_size
volume : Volume, de 0 à 127. 64 si rien n'est mis
freq : Fréquence du son...11025 par défaut
format : Format du son.
format : Boucle true/false
format : Point de répétition


Va voir dans la doc Fr de PALib (http://www.palib.info/Doc/PAlibDoc%20Fr/group___sound_a_r_m9.html#ga5)

Sinon, il y a une autre solution, te créer un compteur qui déclanche la musique au bout de X secondes (X correspondant à la durée de ta musique)

sensei
10/04/2006, 15h47
Merci, juste 2 précisions :

pour data, c'est le nom du fichier ?

Pour lenght, la longueur du son, c'est à dire ? le temps en secondes ?

Merci

N64Francois
10/04/2006, 18h27
Je n'ai pas encore eu l'occasion d'utiliser la fonction PA_PlaySoundEx2 donc je ne peux pas te répondre. Je suppose que data c'est le nom de ton fichier.raw (sans l'extention) qui se trouve dans le dossier "data".
Fait des essais et tu veras bien si ça fonctionne
Regarde par ici, ça peut peut être t'aider (Playing Raw Files):
http://www.palib.info/wiki/doku.php?id=day7

Shining
10/04/2006, 19h21
PA_PlaySoundEx2 c'est bien pour jouer des sons mais j'ai cru comprendre que tu voulais utiliser une musique, donc je te conseille plutôt d'utiliser PA_PlayMod en prenant un fichier musique .mod
Par contre, cette fonction ne permet pas de boucler ta musique donc tu peux toi-même la faire boucler manuellement, en connaissant sa durée, sachant qu'on est à 60 FPS (quand tu lances la musique, tu lance un compteur qui s'incrémente à chaque frame et lorsqu'il atteint 60*temps de ta musique en seconde, tu relances).
Cela dit, tu risques d'être rapidement confronté au problème de mémoire vive, donc je te conseille de te mettre au système de PAFS (dispo sur les tuto de pa_lib)...
Voilà voilà !

sensei
10/04/2006, 20h20
OK OK, en fait j'ai bien lu la doc sur wiki pour les son mais il ne parle pas de fonction boucle...

Je vais essayer de me débrouiller avec un compteur si je n'arrive pas à lancer l'autre fonction.

En tout cas merci ;)

Klem*
13/12/2007, 23h13
Bonjour! J'ai eu le même questionnement que toi et je pense que tu as trouvé a réponse depuis mais il existe cela...


PA_PlaySoundRepeat(0,ma_musique);


...que est utilisable même après avoir fait appel à "PA_PlaySimpleSound(0,ma_musique);" et qui permet de passer une musique en boucle.

Bon après si tu as déjà réglé le soucis, disons juste que ca pourra aider une autre personne. :)

Cortes48
16/12/2007, 11h25
Bonjour! J'ai eu le même questionnement que toi et je pense que tu as trouvé a réponse depuis mais il existe cela...


PA_PlaySoundRepeat(0,ma_musique);


...que est utilisable même après avoir fait appel à "PA_PlaySimpleSound(0,ma_musique);" et qui permet de passer une musique en boucle.

Bon après si tu as déjà réglé le soucis, disons juste que ca pourra aider une autre personne. :)

Merci ca va m 'aider

Mony
25/04/2008, 21h45
:d

Cobain
25/04/2008, 23h28
c'est quoi ce message? tu voulais dire quoi?

largospace
17/05/2008, 11h39
PA_PlaySoundRepeat(ma_musique); c'est bien,

mais pourquoi PA_StopSound(ma_musique) ne l'arrete pas ? :hum: