Názory k článku
SDL: Hry nejen pro Linux (19)
7. 7. 2005 0:30
Nový
SDL_mixer & Widle & MP3
celé vlákno
Roste nekde SDL_mixer pro Widle, kterej pre hrava bez problemu MP3 ? Oficialni binarky jsou bez podpory MP3 a muj vlastni build se na nich "trha".
Ivo Danihelka (neregistrovaný)
7. 7. 2005 19:45
Nový
Re: SDL_mixer & Widle & MP3
celé vlákno
Ve hře nepoužívej MP3, ale např. OGG. Vyhneš se tak poplatkům za MP3 licenci. Stejně to dělá např. i DOOM3.
nuxly (neregistrovaný)
7. 7. 2005 22:52
Nový
Re: SDL_mixer & Widle & MP3
celé vlákno
DOOM3 je vytvořen pomocí SDL? nebo byla použita jiná knihovna
Radek (neregistrovaný)
8. 7. 2005 18:25
Nový
SDL pod Widlema
celé vlákno
Ahoj,
clanek me velmi zaujal, tak sem si do DEV-C++ doinstaloval balicek SDL_mixer-1.2.6-1mol.DevPak a vse perfektne fakci, az na... ;)
Pri svem laborovani jsem narazil na par zajimavosti, na ktere si neumim 100%-ne vydedukovat odpoved, tak kdyby nekdo vedel, rad bych byl o neco chytrejsi...
1) Kdyz u meho programu mam knihovny, nainstalovane balickem DevPak: SDL.dll (verze??? - 1.23MB) a SDL_mixer.dll (verze??? - 1,68MB), program nahlasi chybu a padne na hubu... Kdyz jsem stahl nejaky dll z netu, tak sem to nakonec rozchodil, ale pri stisku klavesy reagoval program asi az po 1 vterine - pri programovani her nepouzitelne. Nakonec jsem od nejake hry zkopiroval SDL.dll (1.2.5.0 - 220kB) a k tomu stahl z netu SDL_mixer.dll (1.2.6.0 - 308kB) - nevi nekdo, jake verze dll by se meli pouzivat a kde je stahovat?
2) Kdyz mam pustenou aplikaci a program Winamp je v popredi, v mem programu s SDL_mixerem se vsechny kanaly samy pauznou a kdyz je v popredi muj program, tak se zase rozjedou. Nevi nekdo proc?
3) Kdyz v 6-ti kanálech prehravam hudbu, spravce uloh ukazuje, ze program zabira neco pres 100MB v RAM - ale kdyz se program za staleho prehravani minimalizuje, najednou zabira jen asi 2MB a postupne tato hodnota roste... Nevi nekdo proc?
clanek me velmi zaujal, tak sem si do DEV-C++ doinstaloval balicek SDL_mixer-1.2.6-1mol.DevPak a vse perfektne fakci, az na... ;)
Pri svem laborovani jsem narazil na par zajimavosti, na ktere si neumim 100%-ne vydedukovat odpoved, tak kdyby nekdo vedel, rad bych byl o neco chytrejsi...
1) Kdyz u meho programu mam knihovny, nainstalovane balickem DevPak: SDL.dll (verze??? - 1.23MB) a SDL_mixer.dll (verze??? - 1,68MB), program nahlasi chybu a padne na hubu... Kdyz jsem stahl nejaky dll z netu, tak sem to nakonec rozchodil, ale pri stisku klavesy reagoval program asi az po 1 vterine - pri programovani her nepouzitelne. Nakonec jsem od nejake hry zkopiroval SDL.dll (1.2.5.0 - 220kB) a k tomu stahl z netu SDL_mixer.dll (1.2.6.0 - 308kB) - nevi nekdo, jake verze dll by se meli pouzivat a kde je stahovat?
2) Kdyz mam pustenou aplikaci a program Winamp je v popredi, v mem programu s SDL_mixerem se vsechny kanaly samy pauznou a kdyz je v popredi muj program, tak se zase rozjedou. Nevi nekdo proc?
3) Kdyz v 6-ti kanálech prehravam hudbu, spravce uloh ukazuje, ze program zabira neco pres 100MB v RAM - ale kdyz se program za staleho prehravani minimalizuje, najednou zabira jen asi 2MB a postupne tato hodnota roste... Nevi nekdo proc?
8. 7. 2005 21:49
Nový
Re: SDL pod Widlema
celé vlákno
Pouze k bodu 2). Nevidel jsem zdrojaky SDL, ale s problemem jsem se setkal. Zakopany pes je nejspis v inicializaci DirectSound knihovnou SDL, protoze zde se funkce SetCooperativeLevel vola s parametrem, ktery urcuje, jak se ma spolupracovat s ostatnimi aplikacemi. Kdyz se pouzije DSSCL_EXCLUSIVE, tak DirectSound hraje pouze, kdyz je okno aplikace v popredi, lepsi je pouzit DSSCL_PRIORITY. Jeste to souvisi s nastavenim CreateSoundBuffer a parametrem DSBCAPS_GLOBALFOCUS a DSBCAPS_STICKYFOCUS (tenhle je ten spravny pro hrani na pozadi).
Nemuzu rict vic, ponevadz pres GPRS si moc srandy s hledanim informaci neuziju. Vice viz www.msdn.com a www.google.com. Poznamka: s SDL, ani s DirectSound jsem v zivote nepracoval, takze informace mohou byt nepresne a zavadejici :-)
Nemuzu rict vic, ponevadz pres GPRS si moc srandy s hledanim informaci neuziju. Vice viz www.msdn.com a www.google.com. Poznamka: s SDL, ani s DirectSound jsem v zivote nepracoval, takze informace mohou byt nepresne a zavadejici :-)
9. 7. 2005 17:04
Nový
Re: SDL pod Widlema
celé vlákno
Dik za vysvetleni. Me to nejak netrapi, ze bych to musel resit, jen sem si toho vsiml a nevedel proc to tak je... R.
9. 7. 2005 2:51
Nový
Re: SDL pod Widlema
celé vlákno
Vami popisovany devpak je urcen pro pouziti s timto SDL devpakem: http://devpaks.org/details.php?devpak=12 (SDL.dll 248745 bajtu). SDL_mixer devpak sam o sobe zadne SDL.dll neobsahuje, pravdepodobne se k vam dostalo jinudy a proto to dohromady nefunguje.
SDL_mixer v dane devpaku je ve verzi 1.2.6, to se snadno pozna z jeho nazvu :-)
SDL devpak nainstaluje sve SDL.dll do dev-cpp\bin
SDL_mixer depvak nainstaluje SDL_mixer.dll a smpeg.dll do dev-cpp\dll (a Windows\system32)
SDL_mixer v dane devpaku je ve verzi 1.2.6, to se snadno pozna z jeho nazvu :-)
SDL devpak nainstaluje sve SDL.dll do dev-cpp\bin
SDL_mixer depvak nainstaluje SDL_mixer.dll a smpeg.dll do dev-cpp\dll (a Windows\system32)
9. 7. 2005 17:00
Nový
Re: SDL pod Widlema
celé vlákno
Ano, je to logicke a take jsem to takto resil. Program se sice rozjede, ale pri stisku klavesnice se ozve zvuk se zpozdenim asi jedne vteriny! Proto jsem badal proc, a kdyz jsem nahodou nakopiroval jinou dll od nejake hry, tak se problem vyresil... Ale to je jedno, chodi to pekne, kdyz se s tim clovek trocha popere...
Radek.
Radek.
10. 7. 2005 23:19
Nový
Re: SDL pod Widlema
celé vlákno
Zdravim.
Já jsem oboje kompiloval a všechno fungovalo tak, jak má, takže s timhle neporadím.
To sekundové zpoždění bude s největší pravděpodobností dáno velikostí audio bufferu - poslední parametr Mix_OpenAudio(). Čím větší bude tato hodnota, tím delší zpoždění. Aktualizace (např. požadavek na přehrávání/zastavení) se, zjednodušeně řečeno, nedělají při volání funkce, anobrž ;) až v době, kdy zvukovka požádá o další data. Zkuste tam zadat číslo 512 a mělo by to pomoci. Naproti tomu, pro hudbu by měl být buffer spíš větší, aby nedocházelo k jejímu trhání, když aplikace nestíhá - předpokládám, že právě proto jsou v mixeru zvuky a hudba oddělené (možná blud). Možná jsem to měl zdůraznit i u mixeru, myslím, že jsem to psal už předtím u SDL audia.
Jujda, 100 MB paměti jenom na hudbu, to je opravdu ažaž... ;) Pro hudbu je speciální kanál, ve kterém se dekóduje za chodu. Zkuste si nahrát do obyčejného zvukového kanálu třímegový ogg a stopněte si, jak dlouho to bude trvat.
Doufám, že je alespoň půlka z toho, co jsem teď napsal, pravda ;) Neměl bych to říkat, ale zvuky jsem se učil za chodu až při psaní článku :(
Já jsem oboje kompiloval a všechno fungovalo tak, jak má, takže s timhle neporadím.
To sekundové zpoždění bude s největší pravděpodobností dáno velikostí audio bufferu - poslední parametr Mix_OpenAudio(). Čím větší bude tato hodnota, tím delší zpoždění. Aktualizace (např. požadavek na přehrávání/zastavení) se, zjednodušeně řečeno, nedělají při volání funkce, anobrž ;) až v době, kdy zvukovka požádá o další data. Zkuste tam zadat číslo 512 a mělo by to pomoci. Naproti tomu, pro hudbu by měl být buffer spíš větší, aby nedocházelo k jejímu trhání, když aplikace nestíhá - předpokládám, že právě proto jsou v mixeru zvuky a hudba oddělené (možná blud). Možná jsem to měl zdůraznit i u mixeru, myslím, že jsem to psal už předtím u SDL audia.
Jujda, 100 MB paměti jenom na hudbu, to je opravdu ažaž... ;) Pro hudbu je speciální kanál, ve kterém se dekóduje za chodu. Zkuste si nahrát do obyčejného zvukového kanálu třímegový ogg a stopněte si, jak dlouho to bude trvat.
Doufám, že je alespoň půlka z toho, co jsem teď napsal, pravda ;) Neměl bych to říkat, ale zvuky jsem se učil za chodu až při psaní článku :(
11. 7. 2005 18:10
Nový
Re: SDL pod Widlema
celé vlákno
Ja su vuuuuul!!! Ja ve funkci pro prehravani zvuku prehravam hudbu! No tak se moc omlouvam. To kvantum zabrane pameti se uz timto vysvetluje...
Ale i kdyz jsem vse dal do poradku a ve funkci pro prehravani zvuku prehravam pouze kratke zvuky, tak s knihovnami nainstalovanymi balicem DevPak - sdl.dll verze 1.2.8 a sdl_mixer.dll verze 1.2.6 stale po stisku klavesy trva priblizne vterinu, nez se ozve zvuk. Pri pouhem nakopirovani sdl.dll verze 1.2.5.0 - kterou jsem nasel u nejake hry, vse funguje perfektne... Ale to je jen takova blbuskta...
Dik moc za nakopnuti, Radek.
Ale i kdyz jsem vse dal do poradku a ve funkci pro prehravani zvuku prehravam pouze kratke zvuky, tak s knihovnami nainstalovanymi balicem DevPak - sdl.dll verze 1.2.8 a sdl_mixer.dll verze 1.2.6 stale po stisku klavesy trva priblizne vterinu, nez se ozve zvuk. Pri pouhem nakopirovani sdl.dll verze 1.2.5.0 - kterou jsem nasel u nejake hry, vse funguje perfektne... Ale to je jen takova blbuskta...
Dik moc za nakopnuti, Radek.
12. 7. 2005 8:09
Nový
Re: SDL pod Widlema
celé vlákno
Taky mi to dela :-( Doporucuji pouzivat oficialni build DLLka http://www.libsdl.org/release/SDL-1.2.8-win32.zip ktery se da najit vzdy pro posledni verzi SDL na strance http://www.libsdl.org/download-1.2.php v sekci Runtime Libraries\Win32
12. 7. 2005 11:44
Nový
pro Michal Molhanec - prehravani MP3
celé vlákno
Uplne prvni dotaz v teto diskuzi je, jestli existuje nejaka verze sdl_mixeru pod widle, co plne podporuje prehravani MP3. Ja sem si stahl DevPak SDL_mixeru a tam je SDL_mixer.dll, ktera ma asi 1,5MB. Prislo mi to hodne moc - tak sem dumal proc asi, zkusil jsem prehrat MP3ku a hups, ono to jelo ;) - takze doporucuji!!!
Jinak s tim prehravanim hudby v kanalech zvkuku, to jsem se zas jednou s necim "predvedl"! ;)
Jinak s tim prehravanim hudby v kanalech zvkuku, to jsem se zas jednou s necim "predvedl"! ;)
12. 7. 2005 13:46
Nový
Re: pro Michal Molhanec - prehravani MP3
celé vlákno
Ehm, díky za snahu, ale já jsem autor SDL_mixer devpaku :-) MP3 sice přehrává, ale bohužel se spoustou rušivých artefaktů. BTW vlastní jádro MP3 přehrávače je v SMPEG.dll, SDL_mixer.dll je tak velkej jenom protože není stripnutej.
Nicméně díky za zájem.
Nicméně díky za zájem.
13. 7. 2005 1:31
Nový
Re: pro Michal Molhanec - prehravani MP3
celé vlákno
Dobrá věc se podařila, konečně se mi povedlo zkompilovat verzi, která přehrává MP3 bez problémů, aktualizovaný devpak je na obvyklém místě http://devpaks.org/details.php?devpak=6
13. 7. 2005 16:13
Nový
Re: pro Michal Molhanec - prehravani MP3
celé vlákno
Super! Velice povedena knihovna a ten novy DevPak taky!
Stahl se si ho a z adresy http://www.libsdl.org/release/SDL-1.2.8-win32.zip jsem stal sdl.dll a uz vse frci na 100% ;) (pred tim mi s nejakou sdl.dll bud vpoho jely udalosti, ale vytuhl hlavni panel ve widlich, nebo s jinou sdl.dll nevytuhl hlavni panel, ale udalosti byly s 1s zpozdenim)
PS: jeste doporucuji programem upx.exe snizit velikost dll, maji pak smesnou velikost...
Dik moc vsem za rady a nakopnuiti, Radek.
Stahl se si ho a z adresy http://www.libsdl.org/release/SDL-1.2.8-win32.zip jsem stal sdl.dll a uz vse frci na 100% ;) (pred tim mi s nejakou sdl.dll bud vpoho jely udalosti, ale vytuhl hlavni panel ve widlich, nebo s jinou sdl.dll nevytuhl hlavni panel, ale udalosti byly s 1s zpozdenim)
PS: jeste doporucuji programem upx.exe snizit velikost dll, maji pak smesnou velikost...
Dik moc vsem za rady a nakopnuiti, Radek.
jan16 (neregistrovaný)
2. 2. 2007 11:28
Nový
Re: SDL pod Widlema
celé vlákno
Já bych moc nedoporučoval 512, když jsem to testoval, tak doporučuju takhle: 512 - minimálně, 1024 - dobrý do her, 2048 - eště se ta odezva dá přežít + do her, 4096 - jenom do přehrávačů, ne do her, 8192 - zbytečně moc :)
Scary (neregistrovaný)
8. 1. 2006 17:38
Nový
SDL_mixer
celé vlákno
Kam mám nakopírovat ten SDL mixwer normálně do SDL neboi sdl:mixer ????
jan16 (neregistrovaný)
4. 1. 2007 23:31
Nový
Jak mám přehrát třeba mod, problém s wav
celé vlákno
nejde mi přehrát jeden wav (velikost:3.5MB vzorkování 44kHz 160kbps)
ffunkce Mix_loadWav() mi vrací na tento wav vždycky null. Nevíte proč? Jak pomocí sdl_mixer přehrát jiný formát (např. mod, xm, mp3...) díky za odpovědi
ffunkce Mix_loadWav() mi vrací na tento wav vždycky null. Nevíte proč? Jak pomocí sdl_mixer přehrát jiný formát (např. mod, xm, mp3...) díky za odpovědi
nikdo (neregistrovaný)
21. 7. 2007 11:44
Nový
Re: Jak mám přehrát třeba mod, problém s wav
celé vlákno
Ten wav je nějak komprimovaný. Jestli je v nějakém (MP3) kodeku, tak tam zkus dát příslušné dll, i když nevím, jestli to pomůže.
jan16 (neregistrovaný)
5. 1. 2007 18:15
Nový
Jak mám nastavit například vyvážení některého kanálu?
celé vlákno
jak mám nastsavovat vyvážení jednotlivých kanálů? (tohle je občas dost důležité do her :) ) (to jako že třeba výstřel z pušky přehraje z většiny levý reproduktor... atd ) znáte to ne?
Tommy (CZ) (neregistrovaný)
---.inext.cz
4. 11. 2009 20:36
Nový
Přehrávání zvuků
celé vláknoPotřeboval bych poradit ohledně přidávání zvuků do volného kanálu. Když zavolám funkci Mix_PlayChannel() s parametrem –1 pro kanál, mělo by to najít volný kanál a v něm spustit přehrávání. Jenže když se volný kanál nenajde, tak se nový zvuk prostě nepřehraje. No a já bych potřeboval podobnou funkci, která by v případě nenalezení volného kanálu přerušila přehrávání nejdéle běžícího zvuku v jiném kanálu a místo něj přehrála ten nový. Chci se jen zeptat zda nějaká taková funkce už existuje v SDL, nebo si ji musím napsat sám?

