Seite 4 von 4
Verfasst: 25.11.2004 21:57
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.
Verfasst: 25.11.2004 22:37
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.
Verfasst: 25.11.2004 22:45
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.
Verfasst: 25.11.2004 22:50
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
Serge: Zeig code damit man den Bug nachvollziehen kann.
MFG
WolfgangS
EDIT
Funktioniert directdingsbums wenn Du es via play1.pb abspielst ?
Verfasst: 25.11.2004 22:57
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.
Verfasst: 25.11.2004 23:08
von WolfgangS
Du lädst die Sounds aber nicht während der Laufzeit des Spieles ... oder ?
MFG
WolfgangS
Verfasst: 25.11.2004 23:10
von Serge
Nein,
wie gesagt, wird im Spiel die Procedure "playS" aufgerufen um einen Sound abzuspielen.