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

Auteur Sujet: Problème avec LoadFromFile et VS2012  (Lu 3476 fois)

0 Membres et 1 Invité sur ce sujet

ketthos

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Problème avec LoadFromFile et VS2012
« le: Juin 17, 2013, 02:08:19 am »
Bonjour,

Je débute avec SFML, mais j'ai un pépin avec le tutorial Audio de ce site.

Voici mon code.
#include <Windows.h>
#include <SFML\Graphics.hpp>
#include <SFML\Audio.hpp>
#include <iostream>

using namespace std;

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow) {


        sf::RenderWindow window(sf::VideoMode(400, 200), "SFML works!");
        sf::VertexArray triangle(sf::Triangles, 3);
        triangle[0].position = sf::Vector2f(10,10);
        triangle[1].position = sf::Vector2f(100,10);
        triangle[2].position = sf::Vector2f(100,100);

        triangle[0].color = sf::Color::Red;
        triangle[1].color = sf::Color::Blue;
        triangle[2].color = sf::Color::Green;
       
        sf::SoundBuffer buffer;

        if(!buffer.loadFromFile("./a-team_intro.wav")) {
                cout << "Impossible de lire le fichier";
                return -1;
        }
       


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

        window.clear();
        window.draw(triangle);
        window.display();
    }
        return 0;

}
 


le problème, c'est qu'il embarque dans la condition du if(!buffer.loadfromfile)

J'ai copié le fichier .wav partout dans le projet, dans le répertoire de travail, dans les répertoires de débug et release, j'ai copié le fichier partout quoi.

J'aimerais savoir si avec Visual Studio 2012 c'est différent?

Merci de votre aide.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème avec LoadFromFile et VS2012
« Réponse #1 le: Juin 17, 2013, 07:50:56 am »
Le chemin de travail est réglable dans les options du projet, rubrique "Debugging".
Laurent Gomila - SFML developer

ketthos

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Problème avec LoadFromFile et VS2012
« Réponse #2 le: Juin 17, 2013, 12:37:55 pm »
Bonjour,

Merci de votre réponse, mais le répertoire de travail est bien configuré, j'ai tout vérifié ça. Mais même à ça, il ne veut pas prendre le fichier wav. C'est étrange.

Merci.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème avec LoadFromFile et VS2012
« Réponse #3 le: Juin 17, 2013, 01:27:02 pm »
Et quel est le message d'erreur ? Tu es sûr que la notation "./" est comprise par Windows ?
Laurent Gomila - SFML developer

ketthos

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Problème avec LoadFromFile et VS2012
« Réponse #4 le: Juin 17, 2013, 06:18:32 pm »
Bonjour,

Je suis au boulot, donc je ne pourrai pas vous répondre avant quelques heures sur le message d'erreur, mais effectivement, le ./ était un test que j'ai fait, un dernier recours puisque je n'arrivais pas à faire fonctionner le loadfromfile, je m'étais dit que peut-être SFML requérait d'avoir un ./ en avant du nom pour qu'il ait le chercher dans le répertoire de travail, mais c'est sur que ce n'était pas une bonne idée.

Je vous envoie le message d'erreur aussitôt rendu à la maison.

Merci de votre aide.


ketthos

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Problème avec LoadFromFile et VS2012
« Réponse #5 le: Juin 22, 2013, 12:58:49 am »
Bonjour Laurent,

Désolé pour le délais de réponse voici le message d'erreur que j'obtiens, il à fallu que je convertisse mon application en DOS pour pouvoir aller chercher le message d'erreur.

BonjourFailed to open sound file "Ring06.wav" (Error in WAV/W64/RF64 file. Malfo
rmed 'fmt ' chunk.)
Impossible de charger le fichier..

J'avais le même message d'erreur avec mon ancien fichier WAV.

voici le nouveau code en console.

#include <SFML/Graphics.hpp>
#include <iostream>
#include <SFML/Audio.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);
    std::cout << "Bonjour";    

    sf::SoundBuffer buffer;
    if(!buffer.loadFromFile("Ring06.wav")) {
        std::cout << "Impossible de charger le fichier..";
   
    }

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

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}

Pourtant Ring06.wav est un fichier wav windows qui fonction très bien.


Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème avec LoadFromFile et VS2012
« Réponse #6 le: Juin 22, 2013, 08:08:25 am »
L'erreur est claire : il y a une couille dans ton fichier audio. Ca arrive courrament que certains logiciels arrivent tout de même à charger des sons "cassés" et d'autres non. Réencode ton son pour régler le problème.
Laurent Gomila - SFML developer

 

anything