Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Anfängerfrage zu FMOD

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Turrican



Anmeldungsdatum: 12.12.2015
Beiträge: 5

BeitragVerfasst am: 12.12.2015, 09:06    Titel: Anfängerfrage zu FMOD Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9682
Wohnort: Neben der Festplatte

BeitragVerfasst am: 12.12.2015, 10:31    Titel: Antworten mit Zitat

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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 12.12.2015, 10:34    Titel: Antworten mit Zitat

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 zwinkern

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()

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 203
Wohnort: Konstanz

BeitragVerfasst am: 12.12.2015, 15:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Turrican



Anmeldungsdatum: 12.12.2015
Beiträge: 5

BeitragVerfasst am: 02.01.2016, 12:26    Titel: Antworten mit Zitat

@Elor:
Danke. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz