OVH Cloud OVH Cloud

[ACCESS] Librairie "fmod.dll"

3 réponses
Avatar
Xavier
Bonjour a tous,

J'écris ce message en désespoir de cause car je cherche désespérément a
utiliser la librairie fmod (http://www.fmod.org/) dans ACCESS soit en VBA.
J'ai bien télécharger la DLL, regardé de fond en comble les exemples (enfin
du moins les déclarations en VB) mais rien a faire je comprend absolument
pas comment demander a ACCESS de lire un vieux fichier au format MOD ni même
au format MP3. Au travers d'internet tout les exemples sont en langage C ou
bien en Vb. Mais impossible d'écrire la moindre ligne de code VBA. Quelqu'un
a t il déjà essayer d'exploiter cette librairie ?

But de l'opération : Créer un fond musical (sans faire appel a Windows Média
Player ou autre librairie variant d'un PC a un autre) dans un formulaire
nommé "A Propos". J'imagine que l'événement est déjà sur Ouverture,
qu'ensuite il faut demander de charger en mémoire le fichier puis enfin le
lire. Le code suivant ne fonctionne pas du moins il fait planter ACCESS
2003. Je tourne sous XP et la DLL est bien dans le dossier SYSTEM32

J'ai importé le fichier fmod.bas dans un module a part (founit dans le
fichier zip)
Le fichier "A Propos.mod" est a la racine de la base MDB

'---------------------------------------------
'Utilisation de la librairie fmod pour jouer un fichier MOD
'
Private Sub Form_Open(Cancel As Integer)

Dim musique As Long
Dim Chemin_musique as string

Chemin_musique = Left(CurrentDb.Name, InStr(1, CurrentDb.Name,
Dir(CurrentDb.Name)) - 1) & "A Propos.MOD"


musique = FSOUND_Stream_Open(Chemin_musique , FSOUND_LOADMEMORY, 12, 0)
Call FSOUND_Stream_Play(0, musique)

End Sub
'---------------------------------------------

Des idées ?

Merci d'avance

3 réponses

Avatar
Logipro
Bonjour Xavier,

Il faut que tu initialise au préalable le stream, voici 2 exemples pour le
MP3 et le MOD :

Public Sub PlayMP3(FileName As String)
Dim streamHandle As Long
Dim streamChannel As Long
Dim Result As Boolean

Result = FSOUND_Init(44100, 32, 0)

If Result Then
streamHandle = FSOUND_Stream_Open(FileName, FSOUND_NORMAL, 0, 0)
If streamHandle <> 0 Then
streamChannel = FSOUND_Stream_Play(fsound_free, streamHandle)
End If
End If

End Sub

Public Sub PlayMOD(FileName As String)
Dim Result As Boolean
Dim SongHandle As Long
Dim SongPlay As Long

Result = FSOUND_Init(44100, 32, 0)

If Result Then
SongHandle = FMUSIC_LoadSong(FileName)
If SongHandle <> 0 Then
SongPlay = FMUSIC_PlaySong(SongHandle)
End If
End If




Salutation !

Robert Simard
Logipro



"Xavier" a écrit dans le message de
news:OhD$
Bonjour a tous,

J'écris ce message en désespoir de cause car je cherche désespérément a
utiliser la librairie fmod (http://www.fmod.org/) dans ACCESS soit en VBA.
J'ai bien télécharger la DLL, regardé de fond en comble les exemples
(enfin

du moins les déclarations en VB) mais rien a faire je comprend absolument
pas comment demander a ACCESS de lire un vieux fichier au format MOD ni
même

au format MP3. Au travers d'internet tout les exemples sont en langage C
ou

bien en Vb. Mais impossible d'écrire la moindre ligne de code VBA.
Quelqu'un

a t il déjà essayer d'exploiter cette librairie ?

But de l'opération : Créer un fond musical (sans faire appel a Windows
Média

Player ou autre librairie variant d'un PC a un autre) dans un formulaire
nommé "A Propos". J'imagine que l'événement est déjà sur Ouverture,
qu'ensuite il faut demander de charger en mémoire le fichier puis enfin le
lire. Le code suivant ne fonctionne pas du moins il fait planter ACCESS
2003. Je tourne sous XP et la DLL est bien dans le dossier SYSTEM32

J'ai importé le fichier fmod.bas dans un module a part (founit dans le
fichier zip)
Le fichier "A Propos.mod" est a la racine de la base MDB

'---------------------------------------------
'Utilisation de la librairie fmod pour jouer un fichier MOD
'
Private Sub Form_Open(Cancel As Integer)

Dim musique As Long
Dim Chemin_musique as string

Chemin_musique = Left(CurrentDb.Name, InStr(1, CurrentDb.Name,
Dir(CurrentDb.Name)) - 1) & "A Propos.MOD"


musique = FSOUND_Stream_Open(Chemin_musique , FSOUND_LOADMEMORY, 12, 0)
Call FSOUND_Stream_Play(0, musique)

End Sub
'---------------------------------------------

Des idées ?

Merci d'avance





Avatar
Xavier
Bonjour Robert,

Ton exemple fonctionne très bien et je t'en remercie. Mais j'ai encore un
souci, celui d'arreter le MOD sans bug.

J'utilise donc : FMUSIC_Stopallsongs
La musique s'arrete bien
Je ferme la base et là Plantage ACCESS (encore)

AppName: msaccess.exe AppVer: 11.0.5614.0 AppStamp:3f3c8e3c
ModName: unknown ModVer: 0.0.0.0 ModStamp:00000000
fDebug: 0 Offset: 10012122

Une idée ?

Cordialement

Xavier
Avatar
Xavier
Ok j'ai trouvé

c'est : FSOUND_Close qu'il faut utilisé

Merci pour l'aide