![Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht](misc/logos/logo.png) |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Turrican
Anmeldungsdatum: 12.12.2015 Beiträge: 5
|
Verfasst am: 12.12.2015, 09:06 Titel: Anfängerfrage zu FMOD |
|
|
Hallo,
ich würde gerne das Abspielen einer MP3 oder MIDI-Datei in mein Programm einbinden.
Realisieren möchte ich das mit FMOD. Ich arbeite mit Linux (64 Bit)
Obwohl ich zahlreiche Beispiele im Netz gefunden und mich an diesen orientiert habe, schlägt das Kompilieren in allen Fällen fehl.
Code: | #Include "fmod.bi"
FSOUND_Init(48000, 8, 0)
DIM mySample AS INTEGER
mySample = FSOUND_Sample_Load(FSOUND_FREE, "drift.mp3", 0, 0, 0)
IF mySample = 0 THEN
PRINT "Error: Musikdatei konnte nicht geladen werden!"
FSOUND_Close
END
END IF
FSOUND_PlaySound(FSOUND_FREE, mySample)
WHILE INKEY$ = ""
FSOUND_Update
WEND
F |
Fehlermeldung beim Kompilieren
musik.bas(7) warning 5(0): Implicit conversion
musik.bas(13) warning 1(1): Passing scalar as pointer, at parameter 2 of FSOUND_PLAYSOUND()
ld: cannot find -lfmod
Auch das genannte Beispiel auf http://content.gpwiki.org/Using_FMOD,_SDL,_and_tinyPTC_in_FreeBASIC will nicht bei mir.
Ich wäre für jeden Tipp dankbar. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 12.12.2015, 10:31 Titel: |
|
|
Zitat: | ld: cannot find -lfmod |
Du musst dem Compiler auch schon sagen, wo er die FMOD-Bibliothek finden kann. libfmod.so ist keine Systemkomponente und nicht auf deinem Linux-Systm vorinstalliert. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Eternal_pain
![](images/avatars/16598560324c4aaa1608b8e.jpg)
Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 12.12.2015, 10:34 Titel: |
|
|
Schon eine weile her das ich FMod bemüht habe, aber sollte eigentlich gehen wenn du statt einer Integer ein Integer/any ptr nimmst...
Code: | DIM mySample AS INTEGER |
hatte mir auch mal einen loader gebaut (weiß allerdings selbst nicht mehr genau wieso ich das so gemacht habe
Code: | 'declare function FSOUND_Stream_GetLength alias "FSOUND_Stream_GetLength" (byval stream as FSOUND_STREAM ptr) as integer
'declare function FSOUND_Stream_GetPosition alias "FSOUND_Stream_GetPosition" (byval stream as FSOUND_STREAM ptr) as uinteger
'declare function FSOUND_Stream_Close alias "FSOUND_Stream_Close" (byval stream as FSOUND_STREAM ptr) as byte
'declare function FSOUND_Stream_Play alias "FSOUND_Stream_Play" (byval channel as integer, byval stream as FSOUND_STREAM ptr) as integer
'declare function FSOUND_Stream_Stop alias "FSOUND_Stream_Stop" (byval stream as FSOUND_STREAM ptr) as byte
''Sound Functions
#Include "fmod.bi"
Function LoadSound(byval filename as String) as any ptr
Dim Buffer as any ptr
Dim Memory as ubyte ptr
Dim FF as Integer = FreeFile
Dim FL as Integer
Open filename for binary access read as #FF
FL=lof(FF)
Memory = callocate(FL+1)
get #FF, , *Memory, FL
Close #FF
Buffer = FSOUND_Sample_Load(FSOUND_FREE, Memory, FSOUND_LOADMEMORY, 0, FL)
Deallocate (Memory)
Return Buffer
End Function
Dim Sound as byte
Sound = FSOUND_Init(44100, 16, 0)
?Sound
Dim BMusic as any ptr
BMusic = LoadSound("SND/background.mp3")
?BMusic
Do
If (FSOUND_IsPlaying(1)=0) Then
FSOUND_PlaySound(1, BMusic)
End If
sleep 100
loop until multikey(&h01)
FSOUND_StopSound (cast(Integer,BMusic))
FSOUND_Close()
|
_________________
![](http://fs5.directupload.net/images/160216/jt32siqx.jpg) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 12.12.2015, 15:07 Titel: |
|
|
Das die libfmod.so nicht gefunden werden kann heisst nicht das sie nicht existiert, sie kann, dass ist meist der fall, eine Versionsnummer im Namen enthalten.
Beispiel: Bei mir heisst die Bibliothek "libfmod-3.75.so". Um die zu nutzen gibt es zwei moeglichkeiten:
1. Name aendern, sollte man aber niemals tut
2. Einen Symbolischen link auf diese Datei setzen.
Beispiel:
Konsole oeffnen und folgendes eingeben
sudo ln -s /usr/lib/libfmod-3.75.so /usr/lib/libfmod.so
Pfad und Libname nusst du natuerlich anpassen, dann sollte die lib eigentlich gefunden werden. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Turrican
Anmeldungsdatum: 12.12.2015 Beiträge: 5
|
Verfasst am: 02.01.2016, 12:26 Titel: |
|
|
@Elor:
Danke. ![lächeln](images/smiles/icon_smile.gif) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|