Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: AudioManager  (Lu 1670 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
AudioManager
« 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 :)



TheKingArthur

  • Invité
Re : AudioManager
« Réponse #1 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 !!

 

anything