Testé avec 5.43 LTS (x86) - X Unicode & 5.61 (x86)
J'ai trouvé l'idée intéressante de charger des sons depuis la DataSection. C'est une bonne idée de protection.
Tu auras besoin de cet include minimal et des dll qui vont avec que j'ai mis à jour il y a moins d'un an.
https://github.com/pbcodex/FMODEX-MIN-UNICODE
Dans les options de compilation de ta version tu coches la
prise en charge Unicode.
A partir de la version 5.60, cette précaution est inutile.
Ce code permet de charger deux sons que j'ai mis en datasection (
Tu mettras les tiens)
Chaque son est mémorisé dans une table Sounds() ce qui permet de les jouer individuellement plus facilement sans les recharger.
Code : Tout sélectionner
EnableExplicit
IncludeFile "fmodex-min.pbi"
#FMOD_OPENMEMORY = $00000800
Structure FMOD_CREATESOUNDEXINFO
cbsize.i ; Size of this structure
length.i ; Size in bytes of file to load
params.i[32] ; Other 32 Parameters
EndStructure
Global FmodSystem.i, Channel.i
Global Dim Sounds(1) ;Two sounds
;Load Sound from DataSection
Procedure FMOD_DataSectionLoadSound(SoundId, SoundLocStart, SoundLocEnd)
Protected exinfo.FMOD_CREATESOUNDEXINFO
exinfo\cbSize = SizeOf(FMOD_CREATESOUNDEXINFO)
exinfo\Length = SoundLocEnd - SoundLocStart
FMOD_System_CreateStream(FmodSystem, SoundLocStart, #FMOD_SOFTWARE | #FMOD_OPENMEMORY, @exinfo, @Sounds(SoundId))
EndProcedure
;Init FMODEX
FMOD_System_Create(@fmodsystem)
FMOD_System_Init(FmodSystem, 32, #FMOD_INIT_NORMAL, 0)
;Load sound
FMOD_DataSectionLoadSound(0, ?forest_start, ?forest_end)
FMOD_DataSectionLoadSound(1, ?dynamite_start, ?dynamite_end)
;Play sound
Debug "Play forest-theme-8-bit.mp3"
FMOD_System_PlaySound(fmodsystem, #FMOD_CHANNEL_FREE, Sounds(0), 0, @channel)
Delay(5000)
Debug "dynamite.mp3"
FMOD_System_PlaySound(fmodsystem, #FMOD_CHANNEL_FREE, Sounds(1), 0, @channel)
Delay(5000)
;Clear all
FMOD_Channel_Stop(Channel)
FMOD_System_Release(FmodSystem)
DataSection
forest_start:
IncludeBinary "forest-theme-8-bit.mp3"
forest_end:
dynamite_start:
IncludeBinary "dynamite.mp3"
dynamite_end:
EndDataSection
Un défaut que je n'ai pas compris. Ce code ne fonctionne pas avec une version 64bits de PureBasic.
http://falsam.com/Download/purebasic/FM ... nSound.zip (
Codes + DLLs + Media 1.44 Mo)