fmod.dll in exe einbinden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: fmod.dll in exe einbinden

Beitrag von PMV »

ts-soft hat geschrieben:Ein bekannter von mir hatte vor 1 oder 2 Monaten den Support per Mail kontaktiert. Es ist zwar nicht explicit in der
Lizenz erwähnt, aber es wird auf jedem Fall nicht gerne gesehen, was eigentlich ja auch logisch ist.
Die freie Nutzung in Freeware dient ja auch der Werbung für die DLL, die kommerzielle Nutzung kostet ja
fast 1000 €, wenn ich mich recht erinnere.
Gern gesehen ist klar, dafür brauch ich keinen Support kontaktieren. :mrgreen:
Ich würds auch schon deswegen nicht machen, wobei ich auch
keinen Ausschlag bekomme, weil ich ne DLL im ZIP-Archive dabei hab.
Aber ok ... wenn das so stimmt und ers unbedingt will:

@slave
so wie dein Code aussieht würde ich dir erst mal empfehlen, fmod so
zum laufen zu bringen, dir scheint ein wenig Kenntnis darüber zu fehlen,
wie DLLs bzw. deren Nutzung überhaupt funktionieren. Du solltest
erst mal im Forum nach der Include für fmod suchen, da hat sich schon
jemand die Mühe gemacht ... wobei die eventuell was älter ist. Wenn
du dann geschaft hast, mit der Include Töne durch fmod aus zu geben,
dann komt das mit dem "DLL aus speicher laden". Wie Danilo erwähnt hat,
gibs dafür auch was im Forum. Aber alles Schritt für Schritt :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: fmod.dll in exe einbinden

Beitrag von Chimorin »

Ich wusel mal ein bisschen im Code rum...

Code: Alles auswählen

If OpenLibrary(0, "fmod.dll")   ;Öffnet die DLL. Ganz am Anfang ins Programm.
    ;CallFunction(0, "MyFunction")    ;"Sucht" nach der Funktion mit dem Namen "My Function". Hier solltest du die Funktionen der DLL nehmen, nicht die des Beispiels ^^
    ;CloseLibrary(0)      ;Schließt die DLL. Solltest du ganz am Ende machen, wenn dein Programm geschlossen wird, da du immer die DLL brauchst.
EndIf
  

FSOUND_Init(44100, 32, 0)
 
hstream = FSOUND_Stream_Open("http://88.190.24.47:80",0,0,0)
If hstream <> 0
  FSOUND_Stream_Play(1,hstream) ;play the stream on channel 1
  FSOUND_SetVolume(1,50)

EndIf

OpenWindow(0, 0, 0, 200, 200, "Ein Fenster", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)

Repeat : Until WindowEvent() = #PB_Event_CloseWindow

Bild

- formerly known as Bananenfreak -
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: fmod.dll in exe einbinden

Beitrag von Chimorin »

Ich kenne mich da nicht aus, aber so sollte es eig. funktionieren. Es kommt aber eine Fehlermeldung, die was mit der DLL zu tun hat (Falsche Argumente).

Code: Alles auswählen

If OpenLibrary(0, "fmod.dll")   ;Öffnet die DLL. Ganz am Anfang ins Programm.
  CallFunction(0, "FSOUND_Init", 44100, 32, 0)    ;"Sucht" nach der Funktion mit dem Namen "My Function". Hier solltest du die Funktionen der DLL nehmen, nicht die des Beispiels ^^
  
  hstream = CallFunction(0, "FSOUND_Stream_Open", "http://88.190.24.47:80", 0, 0, 0))
  If hstream <> 0
    CallFunction(0, "FSOUND_Stream_Play", 1, hstream) ;play the stream on channel 1
    CallFunction(0, "FSOUND_SetVolume", 1, 50)
    
  EndIf
  
  OpenWindow(0, 0, 0, 200, 200, "Ein Fenster", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  
  Repeat : Until WindowEvent() = #PB_Event_CloseWindow
  
  CloseLibrary(0)      ;Schließt die DLL. Solltest du ganz am Ende machen, wenn dein Programm geschlossen wird, da du immer die DLL brauchst.
  End
Else
  MessageRequester("Info", "DLL nicht gefunden!")
  End
EndIf
Die Funktion CallFunction() hat Probleme mit allem, was nicht Integer ist ^^ Mit Prototype kenne ich mich noch weniger aus, deshalb musst du da selber reinschauen.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: fmod.dll in exe einbinden

Beitrag von ts-soft »

Historie - 1st December 2009 : Version 4.40 hat geschrieben:- Changed: Call(C)Function(Fast) parameters have been changed from 'Any' to 'Integer'.
Die Zeile mit FSOUND_Stream_Open sollte also so aussehen:

Code: Alles auswählen

hstream = CallFunction(0, "FSOUND_Stream_Open", @"http://88.190.24.47:80", 0, 0, 0))
Ich habe aber die alte Version der FMOD.dll nicht zur Verfügung, genausowenig wie die Doku, kann also nicht
feststellen ob der Rest stimmt.

Ich möchte Dir aber dringend abraten die veralteten Call*** funktionen zu nutzen, sondern besser Prototypes.
Findest Du in der Hilfe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
slave
Beiträge: 18
Registriert: 15.10.2004 13:19

Re: fmod.dll in exe einbinden

Beitrag von slave »

PMV hat geschrieben:
ts-soft hat geschrieben:Ein bekannter von mir hatte vor 1 oder 2 Monaten den Support per Mail kontaktiert. Es ist zwar nicht explicit in der
Lizenz erwähnt, aber es wird auf jedem Fall nicht gerne gesehen, was eigentlich ja auch logisch ist.
Die freie Nutzung in Freeware dient ja auch der Werbung für die DLL, die kommerzielle Nutzung kostet ja
fast 1000 €, wenn ich mich recht erinnere.
Gern gesehen ist klar, dafür brauch ich keinen Support kontaktieren. :mrgreen:
Ich würds auch schon deswegen nicht machen, wobei ich auch
keinen Ausschlag bekomme, weil ich ne DLL im ZIP-Archive dabei hab.
Aber ok ... wenn das so stimmt und ers unbedingt will:

@slave
so wie dein Code aussieht würde ich dir erst mal empfehlen, fmod so
zum laufen zu bringen, dir scheint ein wenig Kenntnis darüber zu fehlen,
wie DLLs bzw. deren Nutzung überhaupt funktionieren. Du solltest
erst mal im Forum nach der Include für fmod suchen, da hat sich schon
jemand die Mühe gemacht ... wobei die eventuell was älter ist. Wenn
du dann geschaft hast, mit der Include Töne durch fmod aus zu geben,
dann komt das mit dem "DLL aus speicher laden". Wie Danilo erwähnt hat,
gibs dafür auch was im Forum. Aber alles Schritt für Schritt :wink:

MFG PMV
hi der code functioniert ja schon nur eben die einbindung nicht
slave
Beiträge: 18
Registriert: 15.10.2004 13:19

Re: fmod.dll in exe einbinden

Beitrag von slave »

ich wollte eigentlich nur einen Streamplayer erstellen und den dann verteilen...
ich suchte eine möglichkeit und sties auf fmod.dll ich gebe zu ich habe noch keien große ahnung von purebasic, dll etc. habe bis jetzt nur mit php,javascript etc. was programmiert!
hmmm gibt es denn eine andere möglichkeit einen radio stream auszugeben ?
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: fmod.dll in exe einbinden

Beitrag von Ghosty1967 »

Hab mir aus interesse auch mal diese fmod Geschichte angesehen und eigentlich klappt das Abspielen eines Streams
soweit ganz gut. Das einzige Problem ist das folgende...
Dieser Stream funktioniert "http://88.190.24.47:80"
dieser aber nicht "http://www.wdr.de/wdrlive/media/wdr2.m3u"
woran liegt das und was kann man tun, um das hinzubekommen?!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: fmod.dll in exe einbinden

Beitrag von ts-soft »

Weil das eine Playliste ist, derzeit läuft der Titel auf:
http://wdr-mp3-m-wdr2-koeln.akacast.aka ... wdr2-koeln :wink:

M3U

Code: Alles auswählen

Define.s Url = "http://www.wdr.de/wdrlive/media/wdr2.m3u"
Define.s File = GetTemporaryDirectory() + "wdr2.m3u"
Define.s StreamURL
InitNetwork()

If ReceiveHTTPFile(Url, File)
  If ReadFile(0, File)
    StreamURL = ReadString(0)
    CloseFile(0)
  EndIf
  DeleteFile(File)
EndIf

Debug StreamURL
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten