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

Auteur Sujet: sf::Music ne fonctionne pas  (Lu 4171 fois)

0 Membres et 1 Invité sur ce sujet

Kayoku

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
sf::Music ne fonctionne pas
« le: Février 14, 2014, 02:47:11 pm »
Bonjour,

Je débute en SFML, et en voulant commencer un petit projet perso, j'ai déjà un problème au niveau de la musique de fond. C'est à dire qu'a partir du moment ou je crée "Music", la fenêtre ne s'ouvre plus ( J'ai le minimum de code requis, juste une Fenêtre avec sf::RenderWindow et une boucle while.. ) et le musique ne se lance pas.

sf::Music music;
if (!music.openFromFile("music.ogg"))
    return -1; // erreur
music.play();

merci d'avance de votre aide..

Zylann

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : sf::Music ne fonctionne pas
« Réponse #1 le: Février 14, 2014, 08:07:25 pm »
Cet extrait me semble correct, est-tu sûr que le fichier music.ogg est bien trouvé par ton programme? (Par défaut avec Code::Blocks le dossier racine est le même que le projet).
Sinon il faudrait voir le reste du code...

Kayoku

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : sf::Music ne fonctionne pas
« Réponse #2 le: Février 14, 2014, 08:12:44 pm »
Salutation,

Bon je vais tout vous donner, ça sera plus simple !
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>


int main()
{
    sf::RenderWindow window(sf::VideoMode(256, 256), "SFML works!");


    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();


        }

        window.clear();

        sf::Music musique_fond;
        if(musique_fond.openFromFile("JustYouKnowWhy.ogg"))
        {
            std::cout << "Erreur musique !";
        }
        musique_fond.play();

        window.display();
    }

    return 0;
}

Voilà, donc en gros, si j'enlève toute la partie "musique", la fenêtre s'affiche normalement. Si je remet toute cette partie ( la suivante ), j'ai même plus de fenêtre affichée.. Je comprend vraiment pas pourquoi !
Et oui, mon fichier "JustYouKnowWhy.ogg" est bien placé ( Au pire j'vais le copié partout pour voir :P )

 
       sf::Music musique_fond;
        if(musique_fond.openFromFile("JustYouKnowWhy.ogg"))
        {
            std::cout << "Erreur musique !";
        }
        musique_fond.play();

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : sf::Music ne fonctionne pas
« Réponse #3 le: Février 15, 2014, 03:46:59 pm »
En fait, à chaque tour de boucle de ton while, tu crées, tu charges et tu fais jouer une musique.  Quand tu arrives à la fin de ton while (window.isOpen()) ta musique se détruit, et elle se re-crée en boucle.

Crée ta musique, charge la et fait là jouer en dehors du while, normalement se devrait marcher  ;).

Kayoku

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : sf::Music ne fonctionne pas
« Réponse #4 le: Février 15, 2014, 05:58:03 pm »
Bonjour,

En effet c'était une erreur.. mais ça ne fonctionne toujours pas. En fait, le fait d'ajouter cette ligne :

sf::Music musique;

fait que ma fenêtre ne s'ouvre plus. Je ne comprend vraiment pas pourquoi..

Kayoku

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : sf::Music ne fonctionne pas
« Réponse #5 le: Février 18, 2014, 11:47:20 pm »
Bonjour,

Excusez le double post.
Je ne trouve toujours pas la cause de mon problème, j'ai tenté sur différent programme de créer tout simplement une variable sf::Music, mais c'est impossible. Le programme s'arrête instantanément !

N'avez vous vraiment aucune idée d'où peut venir ce problème ?