Forum de la communauté SFML

Général => Projets SFML => Discussion démarrée par: Cmdu76 le Octobre 02, 2014, 03:24:43 pm

Titre: AudioManager
Posté par: Cmdu76 le Octobre 02, 2014, 03:24:43 pm
Bonjour à tous !

Je viens présenter un court projet sur la gestion simplifiée de l'audio avec SFML.

J'ai débuté ce projet il y a déjà quelques mois puis ensuite je suis reparti de 0 car il était trop brouillon et pas si simple à utiliser, mais cette version "test" m'a forcée à réfléchir sur cette nouvelle version.


Le but du projet est donc de n'avoir presque rien à gérer pour l'audio.

Le projet propose 2 classes :

- AudioFile : Contient le nom, le nom de fichier et le type d'une ressource audio. Elle contient aussi les données que fournissent les classes Music et Sound (position, volume, pitch, etc...)

- AudioManager : Permet de créer des AudioFiles et de les gérer. Gestion des ressources audio (sf::Music et sf::Sound). Gestion des sf::SoundBuffer automatique.

Voici un exemple :
#include <AudioManager.hpp>
#include <SFML/System.hpp>

int main()
{
    // Création d'un AudioManager
    am::AudioManager mgr;

    // Création d'un AudioFile (qui sera aussi contenu dans notre AudioManager)
    // Vous pouvez choisir le type de la ressource que vous voulez utiliser
    // Ne JAMAIS créer un AudioFile vous même, passez TOUJOURS par un AudioManager !
    am::AudioFile::Ptr a = mgr.create(am::FileType::Music,"test.ogg","test");
    // On aurait pu aussi faire :
    // am::AudioFile::Ptr a = mgr.createMusic("test.ogg","test");

    // Maintenant on veut jouer une musique (Les 3 lignes suivantes font la même chose) :
    mgr.play("test");   // Grâce au nom d'un AudioFile
    mgr.play(a);        // Grâce à un pointeur vers notre AudioFile
    a->play();          // Directement avec notre pointeur (/!\ Votre pointeur provient bien de Manager::create /!\)

    sf::Clock clock;
    while(clock.getElapsedTime() < sf::seconds(2))
    {
        // Mise à jour de l'AudioManager, qui va supprimer les ressources inutiles (stoppées)
        mgr.update();
    }

    return EXIT_SUCCESS;
}


Liste des prochaines améliorations :
- Gestion de Playlist
- Gestion de SoundGroup
- ...

Voilà, donnez vos avis et vos idées :)


Titre: Re : AudioManager
Posté par: TheKingArthur le Octobre 06, 2014, 09:07:22 pm
Très bonne idée je pense que c'est un bon projet.
J'attend la suite avec impatience !!