[SFML] AL_INVALID_VALUE
Ostatnio zmodyfikowano 2013-05-19 23:40
Natoito Temat założony przez niniejszego użytkownika |
[SFML] AL_INVALID_VALUE » 2013-05-19 00:06:01 jak w temacie, po odpaleniu programu na konsoli pokazuje mi się ten błąd: AL_INVALID_VALUE i nie wiem czego to przyczyna dodam że to nie wina błędnego kodu bo wszystko działało a dodałem tylko kilka linijek które nie zawierają w sobie funkcji z SFML/Audio. ktoś spotkał się z tym problemem? |
|
DejaVu |
» 2013-05-19 13:02:01 http://en.sfml-dev.org/forums/index.php?topic=10622.0Ok, it really looks like a bug. Can you please open a new issue on the tracker so that I don't forget it?
|
Powtórzenie błędu: #include <SFML/Audio.hpp> #include <SFML/System.hpp>
int main( int, char ** ) { sf::SoundBuffer buffer; buffer.loadFromFile( "sound1.ogg" ); { sf::Sound sound( buffer ); sound.play(); sf::sleep( sf::seconds( 5 ) ); } buffer.loadFromFile( "sound2.ogg" ); { sf::Sound sound( buffer ); sound.play(); sf::sleep( sf::seconds( 5 ) ); } return 0; }
|
|
Natoito Temat założony przez niniejszego użytkownika |
» 2013-05-19 22:39:09 też w google to znalazłem lecz chodzi o to że po pierwsze każdy buffor usuwam z pamieci poleceniem delete po załadowaniu go do zmiennej typu sf::Sound i po drugie dodatkowo każdy sprawdziłem używając opcji szukania czy sie nie powtarza no i się nie powtarza mam dwie pętle while( Window.IsOpened() ) , kiedy pierwsza pętla się odpali po chwili uruchamia się funkcja(która jako jeden z argumentuów zawiera wskaźnik do Window) w której jest ta druga pętla i dopiero gdy program dojdzie do drugiej pętli pojawia się na konsoli AL_INVALID_VALUE. chodziło to cały czas sprawnie i nagle przestało a pełny błąd z konsoli brzmi: "An internal OpenAL call failed in sound.cpp(169) : AL_INVALID_VALUE, a numeric argument is out of range". nie mam pomysłów jak ten błąd naprawić :( |
|
DejaVu |
» 2013-05-19 23:07:25 Czemu chcesz robić cokolwiek po zamknięciu okna aplikacji...? Być może SFML sprząta wszystkie zasoby z chwilą zamknięcia okna aplikacji i stąd wynika Twój problem (trzeba by było sprawdzić w źródłach SFML co się dokładnie dzieje, że zachodzi błąd z Twojego tematu). |
|
Natoito Temat założony przez niniejszego użytkownika |
» 2013-05-19 23:40:03 ta druga pętla jest w funkcji, która jest w pierwszej pętli, a po skończeniu funkcji program wraca do pierwszej pętli ale już nie uruchomi się ta funkcja ponieważ zablokowałem ją(tą finkcję) if-em. nie chce wstawiać kodu bo jest go zbyt dużo( ponad 3000 linijek ) ale napisze to w skrócie F( RenderWindow * Window ) { while( Window->IsOpened() ) { } }
int main() { SoundBuffer * Buffor1 = new SoundBuffer(); SoundBuffer * Buffor2 = new SoundBuffer(); SoundBuffer * Buffor3 = new SoundBuffer(); Sound Sound1, Sound2, Sound3; Music Music1, Music2; { if( !Buffor1->LoadFromFile( "sounds/1.wav" ) ) return EXIT_FAILURE; Sound1.SetBuffer( * Buffor1 ); Sound1.SetVolume( DefaultVolume ); delete Buffor1; } { if( !Buffor2->LoadFromFile( "sounds/2.wav" ) ) return EXIT_FAILURE; Sound2.SetBuffer( * Buffor2 ); delete Buffor2; } } if( !Buffor3->LoadFromFile( "sounds/3.wav" ) ) return EXIT_FAILURE;
Sound3.SetBuffer( * Buffor3 ); Sound3.SetVolume( DefaultVolume ); delete Buffor3; }
{ if( !Music1.OpenFromFile( "sounds/4.wav" ) ) return EXIT_FAILURE;
Music1.SetVolume( DefaultVolume ); }
{ if( !Music2.OpenFromFile( "sounds/5.wav" ) ) return EXIT_FAILURE;
Music2.SetVolume( DefaultVolume ); } bool abc = true;
while( Window.IsOpened() { if( abc ) F( & Window );
} }
tak to wygląda EDIT: jeszcze lepiej... rozdzieliłem przy deklaracji zmienne Sound1, Sound2, Sound3 każdą zadeklarowałem osobno w innej linijce jedna pod drugą a dodatkowo dałem w komentarz zmienne Music1, Music2 i okno nadal się wyłącza lecz tym razem na konsoli nic nie ma -_- EDIT 2: problem rozwiązany, przed wejściem do drugiej pętli program sczytywał dane z plików, które jeśli są błędne ma zamykać okno no i własnie po sprawdzeniu ręcznie tych plików były błędne |
|
« 1 » |