Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 1.6] sf::Music

Ostatnio zmodyfikowano 2013-01-19 16:52
Autor Wiadomość
mtrx1994
Temat założony przez niniejszego użytkownika
[SFML 1.6] sf::Music
» 2013-01-16 18:34:25
Witam

Mam problem związany z odtworzeniem muzyki w programie. Po kompilacji w konsoli wyświetla mi się komunikat "Failed to open audio device". Nie mam zielonego pojęcia czym jest to spowodowane. Przeszukałem Internet w poszukiwaniu odpowiedzi jednak takowej nie znalazłem. Bardzo bym prosił o podanie możliwych przyczyn tego fenomenu.
P-74136
RazzorFlame
» 2013-01-16 19:42:11
Podaj kod...
P-74146
mtrx1994
Temat założony przez niniejszego użytkownika
» 2013-01-16 21:34:19
C/C++
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <iostream>
#include <sstream>
#include <iomanip>

using namespace sf;

int main()
{
    RenderWindow okno( VideoMode( 800, 600, 32 ), "Test SFML - Genius 800x600" );
   
    Music music;
    music.OpenFromFile( "jab.wav" );
   
    Image genius;
    genius.LoadFromFile( "genius.png" );
   
    Sprite Genius;
    Genius.SetImage( genius );
    Genius.SetPosition( 0, 0 );
    Genius.SetScale( 0.5, 0.5 );
   
    int i = 0, b = 0, x = 0;
   
    std::ostringstream ss;
    ss << x;
    std::string numer_s = ss.str();
    std::string sciezka;
    sciezka = "screenshots/screenshot";
    sciezka += numer_s;
    sciezka += ".png";
   
   
    music.Play();
   
    while( okno.IsOpened() )
    {
        if( i % 2 == 0 )
             i = 0;
       
        if( i % 2 != 0 )
             i = 1;
       
        Event zdarzenie;
        while( okno.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == Event::KeyPressed && zdarzenie.Key.Code == Key::Escape )
                 okno.Close();
           
            if( zdarzenie.Type == sf::Event::Closed )
                 okno.Close();
           
            if( zdarzenie.Type == Event::KeyPressed && zdarzenie.Key.Code == Key::Space )
            {
                i++;
                b = 0;
                if( i % 2 != 0 )
                     okno.Create( VideoMode( 1024, 768, 32 ), "Test SFML - Genius 1024x768" );
               
                if( i % 2 == 0 )
                     okno.Create( VideoMode( 800, 600, 32 ), "Test SFML - Genius 800x600" );
               
            }
            if( zdarzenie.Type == Event::KeyPressed && zdarzenie.Key.Code == Key::F1 )
            {
                x++;
                Image zrzut = okno.Capture();
                zrzut.SaveToFile( sciezka );
            }
            if( zdarzenie.Type == Event::KeyPressed && zdarzenie.Key.Code == Key::F2 )
            {
                okno.Create( VideoMode( 1920, 1080, 32 ), "Test SFML - Genius FullScreen", Style::Fullscreen );
                b = 3;
            }
        }
        const Input & sterowanie = okno.GetInput();
        Vector2f polozenie = Genius.GetPosition();
        if( i % 2 == 0 && b != 3 )
        {
            if( sterowanie.IsKeyDown( Key::Left ) && !( polozenie.x < 0 ) )
                 Genius.Move( - 0.2, 0 );
           
            if( sterowanie.IsKeyDown( Key::Right ) && !( polozenie.x > 664 ) )
                 Genius.Move( 0.2, 0 );
           
            if( sterowanie.IsKeyDown( Key::Up ) && !( polozenie.y < 0 ) )
                 Genius.Move( 0, - 0.2 );
           
            if( sterowanie.IsKeyDown( Key::Down ) && !( polozenie.y > 473 ) )
                 Genius.Move( 0, 0.2 );
           
            if( polozenie.x > 664 )
            {
                Vector2f pol = Genius.GetPosition();
                Genius.SetPosition( 664, pol.y );
            }
            if( polozenie.y > 473 )
            {
                Vector2f pol = Genius.GetPosition();
                Genius.SetPosition( pol.x, 473 );
            }
        }
       
        if( i % 2 != 0 && b != 3 )
        {
            if( sterowanie.IsKeyDown( Key::Left ) && !( polozenie.x < 0 ) )
                 Genius.Move( - 0.3, 0 );
           
            if( sterowanie.IsKeyDown( Key::Right ) && !( polozenie.x > 888 ) )
                 Genius.Move( 0.3, 0 );
           
            if( sterowanie.IsKeyDown( Key::Up ) && !( polozenie.y < 0 ) )
                 Genius.Move( 0, - 0.3 );
           
            if( sterowanie.IsKeyDown( Key::Down ) && !( polozenie.y > 641 ) )
                 Genius.Move( 0, 0.3 );
           
            if( polozenie.x > 888 )
            {
                Vector2f pol = Genius.GetPosition();
                Genius.SetPosition( 888, pol.y );
            }
            if( polozenie.y > 641 )
            {
                Vector2f pol = Genius.GetPosition();
                Genius.SetPosition( pol.x, 641 );
            }
        }
        if( b == 3 )
        {
            if( sterowanie.IsKeyDown( Key::Left ) && !( polozenie.x < 0 ) )
                 Genius.Move( - 0.5, 0 );
           
            if( sterowanie.IsKeyDown( Key::Right ) && !( polozenie.x > 1784 ) )
                 Genius.Move( 0.5, 0 );
           
            if( sterowanie.IsKeyDown( Key::Up ) && !( polozenie.y < 0 ) )
                 Genius.Move( 0, - 0.5 );
           
            if( sterowanie.IsKeyDown( Key::Down ) && !( polozenie.y > 953 ) )
                 Genius.Move( 0, 0.5 );
           
        }
       
        okno.Clear( Color( 255, 255, 255 ) );
        okno.Draw( Genius );
        okno.Display();
    }
   
}

» KursyKurs STC kurs - xevuel
P-74157
Admixior
» 2013-01-17 00:46:13
Kodu to nie jest wina. Tutaj wchodzi w grę sprzęt i jego konfiguracja. Błąd mówi tak jakbyś nie miał karty dźwiękowej. Sprawdź czy masz sterowniki zainstalowane do nie, i czy głośniki są włączone.
Jaki masz OS i czy zwykłe muzyki i inne dźwięki słychać normalnie?

Całkiem podobna sprawa:http://en.sfml-dev.org/forums/index.php?topic=8423.0, ale niestety mówiąca tylko o zmianie wersji (aczkolwiek to może pomóc)
P-74166
mtrx1994
Temat założony przez niniejszego użytkownika
» 2013-01-18 00:04:46
Ze sprzętem wszystko w porządku. Słucham muzyki codziennie, nigdy nie miałem problemu. Sterowniki także mam wszystkie poinstalowane. Pracuje na Windows XP SP3
P-74251
mtrx1994
Temat założony przez niniejszego użytkownika
» 2013-01-18 00:19:53
Myślicie że przejście na SFML 2.0 pomoże??
P-74252
Sevay
» 2013-01-19 12:33:49
Spróbuj wgrać OpenAL.
P-74385
mtrx1994
Temat założony przez niniejszego użytkownika
» 2013-01-19 16:52:09
dzieki wielkie wgranie openal'a poskutkowalo
P-74410
« 1 »
  Strona 1 z 1