Denselben Sound mehrmals gleichzeitig abspielen.

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag von Serge »

komisch, "directsound" geht, "Directsound" nicht :)

edit:
Hm wird trotzdem, genauso wie wenn man kein Device angibt,
beim Abspielen der sounds ein ruckler erzeugt (besonders wenn viele in kurzer Zeit abgespielt werden)
Egal ob ich Buffer auf 0 oder 10000 setze.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

vielleicht liegt das aber dann an deiner soundkarte.

ich hatte auch soundruckler bei spielen mit ner onboard-SB16.
hab mir deswegen extra die 5.1 geholt, hat geholfen.

kannst mir ja mal 'ne testversion mailen, dann seh ich, ob das bei mir auch auftritt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag von Serge »

Da ich mit dieser Soundkarte schon über 100 Spiele einwandfrei spielen konnte, gehe ich nicht davon aus ;)
Bzw. sogar wenns an meiner Soundkarte liegt, würde ich es nicht verwenden, da es schon möglichst jeder spielen können sollte.
WolfgangS
Beiträge: 30
Registriert: 09.09.2004 09:42

Beitrag von WolfgangS »

vielleicht liegt das aber dann an deiner soundkarte.
Daran wirds wohl nicht liegen. Unabhängig von der Soundkarte sollte man immer ordentlichen Sound hören. Das Problem an der Sache ist, man muss wissen wie man die lib richtig Anwendet. Leider habe ich noch so viel Erfahrung damit. Das ist wie beim Autofahren, auch mit einem BMX X5 kann man mit Vollgas gegen die Wand fahren :allright:

Serge: Zeig code damit man den Bug nachvollziehen kann.

MFG
WolfgangS

EDIT
Funktioniert directdingsbums wenn Du es via play1.pb abspielst ?
WolfgangS' Purebasic Projekte: www.schliess.net
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag von Serge »

Naja am Code wirds wohl nicht liegen, sind ja nur die paar Befehle rüberkopiert und angepasst.
Im Spiel wird dann "plays()" aufgerufen.

Code: Alles auswählen

Enumeration
  #audiere
EndEnumeration

IncludeFile "includes/audiere.pbi"

If OpenLibrary(#audiere,"includes/audiere.dll")=0
MessageRequester("","Error audiere.dll",0):End:EndIf

Structure SOUNDSTRUCTURE 
  name.s
  sound.SoundEffect
  handle.SampleSource 
EndStructure 

NewList sounds.SOUNDSTRUCTURE()


AudioDeviceObject.AudioDevice=AUDIERE_OpenDevice(@"directsound",@"buffer=1000,rate=44100")    
    If AudioDeviceObject=0
    MessageRequester("","Error AUDIERE_OpenDevice:",0):End:EndIf

ExamineDirectory(1,"sounds/","*.wav")

While NextDirectoryEntry()=1
  AddElement(sounds())
  sounds()\name=DirectoryEntryName()
  tempstring.s="sounds/"+sounds()\name
  sounds()\handle=AUDIERE_OpenSampleSource(@tempstring,#FF_AUTODETECT) 
    If sounds()\handle=0 
    MessageRequester("","Error AUDIERE_OpenSampleSource",0):End:EndIf 
  sounds()\Sound=AUDIERE_OpenSoundEffect(AudioDeviceObject,sounds()\handle,#multiple)  
    If sounds()\sound=0                                        
    MessageRequester("","Error OpenSound",0):End:EndIf 
  sounds()\name=RemoveString(sounds()\name,".wav",1)
Wend

Procedure playS(*handle.soundstructure)
  test.Soundeffect=*handle\sound
  test\play()
EndProcedure
Edit:
Es Funktioniert auch bei mir, wie schon gesagt.
Es stockt lediglich im Spiel, insbesondere wenn ein sound abgespielt wird, der davor nicht kam oder wenn zur nahezu gleichen Zeit mehrere Sounds abgespielt werden.
WolfgangS
Beiträge: 30
Registriert: 09.09.2004 09:42

Beitrag von WolfgangS »

Du lädst die Sounds aber nicht während der Laufzeit des Spieles ... oder ? :?

MFG
WolfgangS
WolfgangS' Purebasic Projekte: www.schliess.net
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag von Serge »

Nein,
wie gesagt, wird im Spiel die Procedure "playS" aufgerufen um einen Sound abzuspielen.
Antworten