Forum de la communauté SFML

Aide => Audio => Discussion démarrée par: mazertys17 le Décembre 20, 2014, 01:23:54 pm

Titre: utilisation des son
Posté par: mazertys17 le Décembre 20, 2014, 01:23:54 pm
Bonjour.

Depuis que j'ai implémenté quelques son,(et depuis seulement), mon programme bug de temps en temps au lancement :
   -parfois il marche très bien et les sons sont joués correctement.
   -parfois il plante, au chargement.

J'aimerais savoir si cela vient de ma façon de procéder:

je commence par charger dans mon niveau les sons qui vont être nécessaire, avec sf::SoundBuffer:


class Niveau1
{
public:
   ...
   void charger();
   void update();
   ...
private:
   ...
   Objet monObjetQuiContientLeSon ;
   ...
   sf::SoundBuffer *m_sonBuffer;
   ...
}
 

dans ma fonction charger:


void Niveau1::charger()
{
   ...
   m_sonBuffer = new sf::SoundBuffer;
   m_soundBuffer->loadFromFile("monSon.wav");  
   ...
   monObjetQuiContientLeSon.recoitSon( m_soundBuffer);
   ...
   
 

void Niveau1::update()
{
   sf::Listener::setGlobalVolume(50);
   sf::Listener::setPosition( m_vue1.renvoiVue()->getCenter().x  , m_vue1.renvoiVue()->getCenter().y , 0 );
   ...
   monObjetQuiContientLeSon.update();
   ...
}
 


Et enfin mon objet qui contient le son:


class Objet
{
public:
   ...
   void update();
   void recoitSon(sf::SoundBuffer *son);
   ...

private:
   ...
   sf::Sound m_son;
   ...
}
 

void Objet::recoitSon(sf::SoundBuffer *son)
{
   ...
   m_son.setBuffer(*son);
   m_son.setRelativeToListener(true);
   ...
}

void Objet::update()
{
   ...
   if(m_son.getStatus() == sf::SoundStream::Stopped)
   {
   m_son.play();
   }
   ...
}

 

voilà. J'utilise également de objets qui ont des positions et n'utilisent pas "setRelativeToListener".
Cela fait quelques temps déjà que je cherche sans résultat. il y a-t-il des mauvaises "syntaxes" dans mon code?

Merci si vous pouvez m'aider  :D

 
Titre: Re : utilisation des son
Posté par: Laurent le Décembre 20, 2014, 02:21:44 pm
Citer
parfois il plante
Alors utilise ton debugger, c'est à ça que ça sert ;)