driver1995 Temat założony przez niniejszego użytkownika |
[allegro] sample » 2009-05-05 17:40:43 Witam... Mam taki problem z allegro, a dokładniej z piosenką, którą chcę odtwarzać... int main() { allegro_init(); install_keyboard(); install_mouse(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT_FULLSCREEN, 800, 600, 0, 0 ); install_sound( DIGI_AUTODETECT, MIDI_AUTODETECT, "" ); set_volume( 255, 255 ); intro(); adjust_sample( behemoth, 60, 127, 1000, 1 ); do { MainMenu(); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); } while( !key[ KEY_ESC ] ); stop_sample( behemoth ); destroy_bitmap( CrazyRace ); destroy_bitmap( KG ); allegro_exit(); return 0; } END_OF_MAIN(); play_sample() jest w funkcji intro() jakby co... Problem tkwi w tym, że jest tak: włącza się program, jest wszystko ok... Przechodzi funckja intro (trwa 31 sec) sample behemoth się ścisza (wcześniej ma głośność 255, teraz 60), robi się pętla do (pokazuje się MainMenu)... no i spoko, ale po pewnym czasie (main menu wyświetlone, muzyka gra) muzyka przestaje grać, albo wyłącza się program ;/ ;/ ;/ O co kaman? Czemu tak się dzieje? Jak to naprawić? Może to wina tego, że ta piosenka ma 45 MB? PS. Jeszcze przy okazji: da się jakoś wczytywać format piosenek mp3 zamiast wav ??? |
|
DejaVu |
» 2009-05-05 18:06:20 W tym programie, który przedstawiłeś nie widzę szans na to, żeby się on zamknął sam nawet i po dwóch dniach od uruchomienia :) Rozmiar nagrania wpływa tylko i wyłącznie na czas jego ładowania. Jeśli jednak jest on odtwarzany już to nie widzę żadnego logicznego wyjaśnienia faktu, iż program Ci się sam zamyka. (chyba, że nie o tym pisałeś i źle Ciebie zrozumiałem :P)
Obsługa mp3: Za pomocą innej biblioteki - tak. Być może istnieje jakieś rozszerzenie do allegro, które wspiera również format mp3, jednak to trzeba pogooglać.
/edit: Jeśli program się wywala to funkcja MainMenu() prawdopodobnie zżera wszystkie zasoby komputera (nie zwalnia zasobów).
|
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-05-05 18:32:35 On się nie ma sam zamykać, tylko jak się naciśnie ESC... A z tym zamykaniem sie samemu chodziło mi o to że po chwili wywala windowsowy błąd: program przestał działać... Co do MainMenu() to nie wiem, nie znam się, ale czy to: void MainMenu() { masked_blit( MenTlo, bufor, 0, 0, 0, 0, 800, 600 ); } może pożerać całą pamięć? |
|
WunM |
» 2009-05-05 18:35:48 Nie powinno pożerać pamięci, gdyż obrazek zajmuje tyle ile zajmuje (nawet jak się go powiększy w Allegro), a to co na ekranie jest wyświetlane też nie powinno pożerać dużo pamięci. |
|
DejaVu |
» 2009-05-05 18:38:40 /edit: zaraz poprawię posta /edit2: Co to za wskaźniki i gdzie są one użyte w programie? destroy_bitmap( CrazyRace ); destroy_bitmap( KG );
|
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-05-05 18:38:53 No więc w takim razie dlaczego mi się ta piosenka przerywa? I dlaczego akurat piosenka a nie np. obrazek (znika)????
//edit: @up - to jest usuwanie bitmap... A bitmapy są w funkcji intro() i przed całem mainem(deklaracja)... |
|
DejaVu |
» 2009-05-07 16:30:33 A gdzie masz ich wczytanie? Jeśli wskaźnik będzie zły, aplikacja po wciśnięciu ESC pójdzie w kosmos -> czytaj: wywali się. |
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-05-07 17:22:32 No właśnie w funkcji intro() jest... |
|
« 1 » 2 |