Quelqu'un pourrais me filer un coup de main sur du streaming
ça marche tjrs pas
Resalut,
ça ne marche toujorus pas.
VOilà toutes ma procedure si ça peu aider.
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,$00000080,0,0)
EndProcedure
Si quelqu'un à la soluce?
PS: je n'utilise pas CreateSound, mais bien CreateStream, car j'ai cru comprendre dans la doc qu'il falait utiliser cette fonction pour du streaming.
Merci à tous!
ça ne marche toujorus pas.
VOilà toutes ma procedure si ça peu aider.
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,$00000080,0,0)
EndProcedure
Si quelqu'un à la soluce?
PS: je n'utilise pas CreateSound, mais bien CreateStream, car j'ai cru comprendre dans la doc qu'il falait utiliser cette fonction pour du streaming.
Merci à tous!
Comme je viens de te le dire, cette fonction prend 5 paramètres et non 4, le dernier param ne peut être un zéro mais correspond au pointeur "sound" retourné par FMOD Ex.
Ce qui donne :
Ce qui donne :
Code : Tout sélectionner
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,$00000080,0,0,@Sound)
EndProcedure
"Qui baise trop bouffe un poil." P. Desproges
Tourjous rien!
Ouai, j'ai tourjour rien.
9a plante tjrs!
Voilà tout mon code
Fichier Main.pb
Enumeration
#LibFMOD
EndEnumeration
XIncludeFile("Stream.pb")
Global LibFMODName$, PB_FMOD_System_Init.l, PB_FMOD_System_CreateStream.l, FMODLoad, System.l, PB_FMOD_System_SetStreamBufferSize.l, Sound.l
LibFMODName$="C:\fmod.dll"
FMODLoad=FMOD_Load()
System=FMOD_System_Init()
FMOD_System_SetStreamBufferSize(System)
Sound=LoadStream(System,UrlStreamPlay$)
Fichier Stream.pb
Procedure FMOD_Load()
Protected DLL.l
DLL = OpenLibrary(#LibFMOD, ""+LibFMODName$+"")
If DLL = 0
MessageRequester(TitleMSG5$, Message5$, 0)
Endd()
Else
PB_FMOD_System_Init=GetFunction(#LibFMOD,"FMOD_System_Init")
PB_FMOD_System_SetStreamBufferSize=GetFunction(#LibFMOD,"FMOD_System_SetStreamBufferSize")
PB_FMOD_System_CreateStream = GetFunction(#LibFMOD,"FMOD_System_CreateStream")
ProcedureReturn DLL
EndIf
EndProcedure
Procedure FMOD_System_Init()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Init,44100,1,0,0)
EndProcedure
Procedure FMOD_Close()
CloseLibrary(#LibFMOD)
EndProcedure
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,$00000080,0,0,@Sound)
EndProcedure
Procedure FMOD_System_SetStreamBufferSize(System.l)
ProcedureReturn CallFunctionFast(PB_FMOD_System_SetStreamBufferSize,System,64*1024,$00000008)
EndProcedure
Voilà.
Quand je compile, ça marche. Mais quand je lance l'exe, ça bug. Sauf quand je comante la ligne :
Sound=LoadStream(System,UrlStreamPlay$)
La ça ne fait pas d'erreur.
Si qqn vois le bug ça cerai kool!
Merci d'avance!
9a plante tjrs!
Voilà tout mon code
Fichier Main.pb
Enumeration
#LibFMOD
EndEnumeration
XIncludeFile("Stream.pb")
Global LibFMODName$, PB_FMOD_System_Init.l, PB_FMOD_System_CreateStream.l, FMODLoad, System.l, PB_FMOD_System_SetStreamBufferSize.l, Sound.l
LibFMODName$="C:\fmod.dll"
FMODLoad=FMOD_Load()
System=FMOD_System_Init()
FMOD_System_SetStreamBufferSize(System)
Sound=LoadStream(System,UrlStreamPlay$)
Fichier Stream.pb
Procedure FMOD_Load()
Protected DLL.l
DLL = OpenLibrary(#LibFMOD, ""+LibFMODName$+"")
If DLL = 0
MessageRequester(TitleMSG5$, Message5$, 0)
Endd()
Else
PB_FMOD_System_Init=GetFunction(#LibFMOD,"FMOD_System_Init")
PB_FMOD_System_SetStreamBufferSize=GetFunction(#LibFMOD,"FMOD_System_SetStreamBufferSize")
PB_FMOD_System_CreateStream = GetFunction(#LibFMOD,"FMOD_System_CreateStream")
ProcedureReturn DLL
EndIf
EndProcedure
Procedure FMOD_System_Init()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Init,44100,1,0,0)
EndProcedure
Procedure FMOD_Close()
CloseLibrary(#LibFMOD)
EndProcedure
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,$00000080,0,0,@Sound)
EndProcedure
Procedure FMOD_System_SetStreamBufferSize(System.l)
ProcedureReturn CallFunctionFast(PB_FMOD_System_SetStreamBufferSize,System,64*1024,$00000008)
EndProcedure
Voilà.
Quand je compile, ça marche. Mais quand je lance l'exe, ça bug. Sauf quand je comante la ligne :
Sound=LoadStream(System,UrlStreamPlay$)
La ça ne fait pas d'erreur.
Si qqn vois le bug ça cerai kool!
Merci d'avance!
La voilà
La voilà, voilà le nouveau fichier Stream.pb
Procedure FMOD_Load()
Protected DLL.l
DLL = OpenLibrary(#LibFMOD, ""+LibFMODName$+"")
If DLL = 0
MessageRequester(TitleMSG5$, Message5$, 0)
Endd()
Else
PB_FMOD_System_Init=GetFunction(#LibFMOD,"FMOD_System_Init")
PB_FMOD_System_Create=GetFunction(#LibFMOD,"FMOD_System_Create")
PB_FMOD_System_SetStreamBufferSize=GetFunction(#LibFMOD,"FMOD_System_SetStreamBufferSize")
PB_FMOD_System_CreateStream = GetFunction(#LibFMOD,"FMOD_System_CreateStream")
ProcedureReturn DLL
EndIf
EndProcedure
Procedure FMOD_System_Init()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Init,44100,1,0,0)
EndProcedure
Procedure FMOD_Close()
CloseLibrary(#LibFMOD)
EndProcedure
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,0,$00000080,0,Sound)
EndProcedure
Procedure FMOD_System_SetStreamBufferSize(System.l)
ProcedureReturn CallFunctionFast(PB_FMOD_System_SetStreamBufferSize,System,64*1024,$00000008)
EndProcedure
Procedure FMOD_Create()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Create)
EndProcedure
(Le résultat renvoyer est stoqué dans Soudn).
Et ça bug toujrous!
Je ne comprend vraimeent rien!
Procedure FMOD_Load()
Protected DLL.l
DLL = OpenLibrary(#LibFMOD, ""+LibFMODName$+"")
If DLL = 0
MessageRequester(TitleMSG5$, Message5$, 0)
Endd()
Else
PB_FMOD_System_Init=GetFunction(#LibFMOD,"FMOD_System_Init")
PB_FMOD_System_Create=GetFunction(#LibFMOD,"FMOD_System_Create")
PB_FMOD_System_SetStreamBufferSize=GetFunction(#LibFMOD,"FMOD_System_SetStreamBufferSize")
PB_FMOD_System_CreateStream = GetFunction(#LibFMOD,"FMOD_System_CreateStream")
ProcedureReturn DLL
EndIf
EndProcedure
Procedure FMOD_System_Init()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Init,44100,1,0,0)
EndProcedure
Procedure FMOD_Close()
CloseLibrary(#LibFMOD)
EndProcedure
Procedure LoadStream(System.l,URL.s)
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,0,$00000080,0,Sound)
EndProcedure
Procedure FMOD_System_SetStreamBufferSize(System.l)
ProcedureReturn CallFunctionFast(PB_FMOD_System_SetStreamBufferSize,System,64*1024,$00000008)
EndProcedure
Procedure FMOD_Create()
ProcedureReturn CallFunctionFast(PB_FMOD_System_Create)
EndProcedure
(Le résultat renvoyer est stoqué dans Soudn).
Et ça bug toujrous!
Je ne comprend vraimeent rien!
DSL oublier
Quand je dit le résultat, c'est le résultat de FMOD_System_Create() qui est renvoyer dans Sound.
Oui mais non, la tu fais un peu n'importe quoi, lit bien ce que je te dit : regarde le fichier fmod.h, tout à la fin, tu as toutes les fonctions ainsi que les paramètres recquis ainsi que les valeurs retournées.
Par exemple :
Le ** signifie que FMOD_System_Create à besoin de l'adresse d'un pointeur pour y stocker le system ainsi créé.
Ce qui donne en PB :
Par exemple :
Code : Tout sélectionner
FMOD_RESULT F_API FMOD_System_Create (FMOD_SYSTEM **system);
Ce qui donne en PB :
Code : Tout sélectionner
Procedure FMOD_Create(*system)
ProcedureReturn CallFunctionFast(PB_FMOD_System_Create, @*system)
EndProcedure
"Qui baise trop bouffe un poil." P. Desproges
Donc j'enlève
Donc, si je mais ça, j'enlève FMOD_System_Init?
Ou je carde les deux?
Ou je carde les deux?