Adresse memoire d'un son

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
barnierchristophe
Messages : 64
Inscription : lun. 07/févr./2005 11:18

Message par barnierchristophe »

Bon, après essai playsound(monson,2) n'est pas vraiment concluant. Le volume fini par baissé, et ce n'est pas vraiment polyphonique. J'en suis revenu à la solution évoquée plus haut, c'est à dire que je charge N fois le son dans une liste, avec N identifiants différents. A chaque fois que je joue le son, j'appelle l'élement suivant de la liste. On a alors une polyphonie à N sons. L'avantage est aussi de pouvoir changer la fréquence de chaque son.....

Code : Tout sélectionner

Structure Alien
  sprite.l
  sound.l
EndStructure

Global NewList SonAliens.l()  
Global NewList Aliens.Alien()
#MaxSonAlien=5


If InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
  MessageRequester("Erreur","Pb ouverture DirectX",#PB_MessageRequester_Ok)
  End
EndIf
OpenConsole()

ClearList(SonAliens())
For i=0 To #MaxSonAlien
  AddElement(SonAliens())
  SonAliens()=LoadSound(#PB_Any,"alien.wav")
  If SonAliens()
    Debug "Son AlienN°"+Str(i)+" initialisé :"+Str(SonAliens())
  Else
    Debug "Son AlienN°"+Str(i)+"  pas initialisé ..."
  EndIf
  
Next i
FirstElement(SonAliens())


Repeat
  NbreAliens=NbreAliens+1
  PrintN("Creation du sprite "+Str(NbreAliens))
  ;On crée un alien
  AddElement(Aliens())
  ;aliens()\sprite=Ect
  If NextElement(SonAliens())=0 ;On boucle la liste
    FirstElement(SonAliens())
  EndIf
  Aliens()\sound=SonAliens()
  PlaySound(Aliens()\sound)
  SoundFrequency(Aliens()\sound,20000+Random(70000))
  Delay(500+Random(1500))
  
  ExamineKeyboard()
  
Until NbreAliens>100

  
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

il me semble qu'il y a un flag qui n'est pas encore dans la doc pour utiliser un son de facon asynchrone (jouer plusieurs fois le même en même temps)

Dri
Répondre