Verfasst: 19.11.2004 18:32
Also ich denke mal "samplesource" und "soundeffect" sind interfaces und es ist in PB wohl nur möglich stinknormale Variablen und keine Listen/Felder/Strucuteren mit Interfaces zu definieren? Oder irre ich mich?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Enumeration
#audiere
EndEnumeration
IncludeFile "audiere.pbi"
Structure SOUNDSTRUCTURE
SampleSourceObject.SampleSource
SoundEffectObject.SoundEffect
EndStructure
Dim mysound.SOUNDSTRUCTURE(5)
If OpenLibrary(#audiere,"audiere.dll")=0
MessageRequester("","Error audiere.dll",0):End:EndIf
; opens a device
AudioDeviceObject.AudioDevice=AUDIERE_OpenDevice(@"winmm",@"buffer=1000,rate=44100")
If AudioDeviceObject=0
MessageRequester("","Error AUDIERE_OpenDevice:",0):End:EndIf
; opens a music
mysound(0)\SampleSourceObject = AUDIERE_OpenSampleSource(@"machinae_supremacy_-_sidstyler.ogg",#FF_AUTODETECT)
If mysound(0)\SampleSourceObject=0
MessageRequester("","Error AUDIERE_OpenSampleSource",0):End:EndIf
mysound(0)\SoundEffectObject=AUDIERE_OpenSoundEffect(AudioDeviceObject,mysound(0)\SampleSourceObject,#MULTIPLE)
If mysound(0)\SoundEffectObject=0
MessageRequester("","Error OpenSound",0):End:EndIf
mysound(0)\SoundEffectObject\play() ; play the soundEffect
MessageRequester("","Press OK für'n zweiten sound",0)
mysound(0)\SoundEffectObject\play() ; play the soundEffect
MessageRequester("","Jetzt hörst Du zwei Sounds",0)
mysound(0)\SoundEffectObject\stop() ; stop the soundEffect
mysound(0)\SoundEffectObject\ref() ; refcounter+1
mysound(0)\SoundEffectObject\unref() ; delete the object (refCounter-1)
; Note:
; it isn't necessary to delete the
; SampleSourceObject and the AudioDeviceObject
CloseLibrary(#audiere)
Code: Alles auswählen
Procedure G_sound_playfree (p_dateipfad.s,p_spielfequenz.f)
ergebniss = LoadSound(#PB_Any, p_dateipfad.s)
If ergebniss = 0
ProcedureReturn 0
Else
EndIf
PlaySound(ergebniss)
ProcedureReturn ergebniss
EndProcedure
Das kann aber keine ogg und mp3 on the fly ...So![]()
Code: Alles auswählen
sounds()\soundEffectObject\play()
Code: Alles auswählen
Procedure test()
sounds()\soundEffectObject\play() ; play the soundEffect
EndProcedure
test()