Librairie son [fmod]

Soyez le premier à donner votre avis sur cette source.

Vue 11 485 fois - Téléchargée 790 fois

Description

Un wrapper pour la librairie FMod que j ai testé pas mal de fois et qui marche maintenant plutot bien, en réponse au besoin d orius pour son puissance 4 ... J espere que tu vas avoir du son maintenant =)
On peut charger differents formats musicaux (wav, mp3 ...), les jouer, changer le volume et differents autres parametres ...
Je pense que le code est assez commenté, ca doit pouvoir servir a comprendre comment fonctionne la librairie FMod mais egalement etre utilisable tel quel.
Si vous vous servez de cette librairie, pas besoin de me le faire remarquer ... si je l ai mise ici, c est pour qu on puisse l utiliser librement (mais dans le cadre de la charte d utilisation d' FMod bien sur).
Au fait, les differents headers sont disponibles sur www.fmod.org, j ai préféré ne pas les fournir pas souci de compatibilité, a la vue de la diversité des compilateurs utilisés sur ce site.
Bref .... Enjoy :)

Source / Exemple :


#include <stdio.h>
#include "K2D_Sound.h"

#pragma comment  (lib, "fmodvc.lib")	// ajoute la librairie sous vc++, a supprimer sinon

int main ()
{
	// 1 fois au debut du prog
	if (K2D_SoundSystem::Init () == 0)
	{
		printf ("Impossible d initialiser la librairie\n");
		return 0;
	}

	K2D_Sound g_Sound;		// creation d un son	

	// on indique le fichier a jouer
	if (g_Sound.Load ("dominating.wav") == 0)
	{
		printf ("Impossible de charger le fichier\n");
		return 0;
	}
	// Lecture
	g_Sound.Play ();					// on le joue

	// maniere tres personnelle d empecher le programme de se fermer ....
	int a; 
	scanf ("%d", &a);

	// Desinitialisation :: on ferme tout ce qui a été ouvert
	g_Sound.Close ();			
	K2D_SoundSystem::Close ();

	return 0;
}

/*
	Bref:
	- On ajoute la librairie fmod (fmodvc.lib pour vc++)
	- on appele la methode K2D_SoundSystem::Init (); 
	avant de faire quoi que ce soit avec les fichiers sons
	- on cree autant de K2D_Sound qu on veut,
	on charge les fichiers avec la methode Load ("nom du fichier")
	on joue les sons avec la methode Play ();
	- on ferme tous les fichiers sons a la fin du programme avec la methode Close ()
	- on ferme le K2D_SoundSystem grace à K2D_SoundSystem::Close ();

	Il y  a d autres methodes a découvrir, mais les bases sont la.

  • /

Conclusion :


Bref voila, si vous avez des commentaires a faire, n hesitez pas... des methodes ne marchent peut etre pas, mais je me sers désormais principalement de ce qui a été donné ci dessus donc je n ai peut etre pas remarqué ces petits problemes ...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
21
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
9 mars 2007

Salut, jessaie d'utilier la toute derniere version de fmodex ecris en c++ et m'aperçois malheuresement que les classes de cette version ne peut pas se compiler avec devc++sinon les fonctions ce compilent bien mais celle ci sont en c . C d'autan plus chiant que j'utilise les classes de Qt4 pour faire mes prog qui eux se compile qu'avec mingw (donc devc++).
Jsuis un debutant en prog et jme suis dis si il été possible d'utiliser les fonctions de fmodex ecritent en c pour ensuite les implanter dans les classes de Qt4. ainsi j'ajouterais des fonctions a Qt4 permettant de lire des mp3 et non que des wav.
jpense pas etre le seul a penser ça, mais bon jtrouve difficilement de topic sur ce sujet. Si quelqun a une idée ce serais cool de le faire partager a tous.
merci
Messages postés
25
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2008

On peux analyser le fichiers son ?
Par exemple, sans ecouter, connaitre si il y a du blanc (pas de bruit) a certain moment ?
Messages postés
18
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
15 janvier 2005

Oui, fmod est vraiment très pratique et relativement simple, cette librairie a en plus l'avantage d'être gratuite pour les applications non commerciales :-D
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

Merci
Enfin bon j ai jeté un coup d' oeil au code, et il y a 2-3 trucs qui sont pas super. Par ex, on ne peut pas charger des fichiers .xm ou .mod. Meme si c est pas répandu, c est dommage, et en plus, ca prend moins de ressources si c est pour faire un petit effet dans un jeu.
Apres j ai fait quelques modifs : Les foncitons relatives a la balance et au pan ... c est les memes, alors j ai viré celle sur le pan, la balance me semble + évocateur.
J ai aussi mis toutes les methodes de K2D_SoundSystem en static, ce qui fait qu on a pas besoin de creer un objet K2D_SoundSystem pour pouvoir s en servir (c etait inutile, il ne contient aucune données, que des methodes).
J ai viré la variable m_EchoId qui ne servait a rien, et pareil pour les parametres des boucles (SND_LOOP_OFF je crois).
Bref maintenant un code encore + clair, + commenté, et encore plus simple d utilisation, mais qui gere pas les xm. J ajouterais pas cette fonctionnalités car elle en me servira pas (elle ne m a pas servi jusqu a present), mais tu peux le faire c est vraiment pas compliqué.
Suffit juste d ouvrir la doc de fmod ....
Messages postés
16
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 juillet 2004

euh :):):):) c'est trop simple comparé aux fonctions playsound de SDL qui deja son simple elles aussi (pour certains d'entre nous :p). Bref que du bonheur j'etais vous sur cette source pour mettre du son dans vos applis c'est clair précis et simple :)

Merci encore 10/10
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.