0 Members and 1 Guest are viewing this topic.
;***********************************************;Titre :*test_fmodex;Auteur : Dobro;Date :24/10/2013;Heure :17:22:14;Version Purebasic : PureBasic 5.20 LTS (Windows - x86); Libairies necessaire : Fmodex.pbi ;***********************************************Enumeration #window #imageEndEnumerationXIncludeFile "E:\MULTIMEDIA\PUREBASIC\5.20\_Fmodex_5_20\fmodex.pbi" Declare Oscillo(sound); **************** initialisation Sprite des 512 niveaux************Global Dim Arr.F(512) ; tableau pour les 512 niveauxIf InitSprite() = 0 MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0) EndEndIfStructure sprite x.l y.lEndStructureGlobal Dim sprite.sprite(512); creation de la fenetre d'affichage des niveauIf OpenWindow(#window, pos_x, pos_y, 300, 55, "Pure Radio", #PB_Window_SystemMenu) If OpenWindowedScreen(WindowID(#window), 4, 4,290,50,0,0,0 ) ClearScreen(RGB($0,$0,$0)) FlipBuffers() For i=1 To 512 Step 4 CreateSprite(i,2,32):CreateImage(#image,2,32,32) sprite(i)\x=i sprite(i)\y=50 StartDrawing ( ImageOutput (#image)) DrawingMode ( #PB_2DDrawing_Gradient ) ; BackColor($0000FF) GradientColor(0.4, $00FFFF) GradientColor(0.6, $FFFF00) FrontColor($FF0000) LinearGradient(0, 0, 2, 32) Box(0, 0, 2, 32) StopDrawing () StartDrawing ( SpriteOutput (i)) DrawImage(ImageID(#image),0,0) StopDrawing() Next i EndIfEndIf; *******************************************url$="http://50.7.98.106:8398/" ; ************init ****************************FMOD_System_Create(@fmodsystem)FMOD_System_Init(fmodsystem, 32, 0, 0); ***************************************FMOD_System_CreateStream(fmodsystem, @url$, #FMOD_CREATESTREAM, 0, @sound)FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) ; joue l'url;str.s = OpenFileRequester("Choose a soundfile", "c:", "*.*|*.*", 0)If str.s<>"" ; on charge le fichier ;FMOD_System_CreateStream(fmodsystem, @str, #FMOD_SOFTWARE, 0, @sound) ; creer le stream ;FMOD_Sound_GetLength(sound, @longueur, #FMOD_TIMEUNIT_MS) ; recupe la taille du son dans longueur ; FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) ; joueEndIfRepeat Evenement.l= WaitWindowEvent(2) FMOD_Channel_GetSpectrum(channel, Arr(), 512, 0, 0 ) ; recuperere les 512 niveaux des frequences Oscillo(sound) ; le graph au centre ecran graphique Select EventWindow() ;-evenement window EndSelect FlipBuffers() ClearScreen(0)Until Evenement = #PB_Event_CloseWindowProcedure Oscillo(sound) Static compteur.F,compteur2.F compteur.F=compteur.F+1 compteur2.F=compteur2.F+10 largeur=290 :hauteur=50 If state=0 And play=1 For spr=1 To 512 Step 4 variation=25* Sin(compteur2*#PI/180) sprite(spr)\x=spr sprite(spr)\y= variation* Sin(spr*#PI/180) DisplaySprite(spr,sprite(spr)\x+compteur.F,sprite(spr)\y) sprite(spr)\y=50 ; remet le sprite en bas If sprite(spr)\x+compteur.F>512 compteur.F=0 sprite(spr)\x=0 EndIf Next spr Else For spr=1 To 512 Step 4 sprite(spr)\y=sprite(spr)\y-Arr(spr)*32*spr DisplaySprite(spr,sprite(spr)\x,sprite(spr)\y) sprite(spr)\y=50 ; remet le sprite en bas Next spr EndIf EndProcedure