Seite 2 von 2

Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 17:46
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

Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 18:31
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


Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 18:36
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.

Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 18:56
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.

Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 20:11
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

Re: fmod.dll in exe einbinden

Verfasst: 03.02.2013 20:16
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 ?

Re: fmod.dll in exe einbinden

Verfasst: 21.04.2013 01:29
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?!

Re: fmod.dll in exe einbinden

Verfasst: 21.04.2013 09:31
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