beim Befehl Catchsound kann man ja eine optionale Länge angeben.
Code: Alles auswählen
CatchSound(#Sound, Speicheradresse [, Länge [, Flags]])Leider funktioniert das nicht. Es wird trotzdem die gesamte Wave gecatched bzw. ein Fehler ausgeworfen. Bei OGG Sounds geht es noch eher als bei WAV (siehe Codebeispiel).
Im konkreten Fall habe ich eine Wave Datei mit verschiedenen Sounds, die ich einzeln catchen möchte.
(seperate Dateien für jeden Sound laden verbieten leider die contest-Regeln
Code: Alles auswählen
InitSound()
UseOGGSoundDecoder()
CatchSound(0, ?Music, 5000*2)
; WAV:Spielt alles ab statt nur die ersten 5000 Samples
; OGG:Spielt nur die ersten 5000 Samples ab, alles super
PlaySound(0)
Delay (2000)
CatchSound(1, ?Music+10000, 5000*2)
; WAV: Erzeugt einen Fehler "The specified #Sound is not inititalized"
; OGG: Erzeugt einen Fehler "The specified #Sound is not inititalized"
PlaySound(1)
Delay (2000)
End
DataSection
Music:
IncludeBinary "D:\Sound.ogg"
;IncludeBinary "D:\Sound.wav"
EndDataSection