Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
C/C++
SDL_mixer - zvuky a hudba jednoduše a snadno
sdl now
11. března 2003, 00.00 | Tento článek popisuje knihovnu SDL_mixer, která je jednoduchým a šikovným nástrojem jak ozvučit svůj program. Dozvíte se jak rozběhat zvuky i hudbu.
SDL_mixer
A po delší době tu máme další článek o SDL, dnes probereme jak hru ozvučit. Zvuky a hudba dodávají hře rozměr. Samotné SDL umí jednoduše přehrávat soubory typu WAV, pokud chceme muziku musíme si pořídit dodatečnou knihovnu, mě se osvědčila knihovna SDL_mixer.
Popis
Tato knihovna umí přehrávat soubory typů:
Zvuky
- WAVE/RIFF (.wav)
- AIFF (.aiff)
- VOC (.voc)
Hudba
- MOD (.mod .xm .s3m .669 .it .med a další) - používá vložený mikmod
- MIDI (.mid) používá timidity nebo midi hardware
- OggVorbis (.ogg) potřebuje knihovnu ogg/vorbis
- MP3 (.mp3) potřebuje knihovnu SMPEG
U WAV, AIFF a VOC podporuje až 8 kanálů, panning a takové efekty, jako je utlumení zvuku. A nejlepší na tom je, že to vše zvládá ve Windows i mnoha unixovských systémech, a tak nejsou problémy s přenositelností. Všechny funkce knihovny popisovat nebudu, neboť knihovna má velmi dobrou anglickou dokumentaci a soustředím se spíše na příklad jak s knihovnou pracovat.
Příklad
V příkladu nastavíme zvukový výstup na frekvenci 22kHz, které jsou optimální i pro starší počítače. A 16b hloubku zvuku, stereo. A zvuk se bude přehrávat po blocích 1024 hodnot. Pokud zvolíme příliš malou délku bloku bude se volat obnovovací funkce častěji, což může na pomalých počítačích způsobit přeskakování zvuku. Pro poslech hudby můžeme nastavit třeba na 4096B, což ve hrách zase způsobí větší opožďování zvuku. Mixer má standardně 8 přehrávacích kanálů.
Pro lepší přehlednost co a v jakém kanálu přehráváme doporučuji si vytvořit enum s názvy zvuku (a kanálů tedy pokud zadáváme určitý kanál pro přehrání).
|
Poté nahrajeme zvuk
|
Zde zvuk přehrajeme. Musíme pamatovat, že pokud přehráváme zvuk v kanálu kde již nějaký zvuk běží, tak je předchozí zvuk zastaven a spuštěn nový. Pokud se přehrává několik zvuků v různých kanálech, tak dojde k jejich zmixování. Pokud místo kanálu vložíme -1, tak se zvuk přehraje na prvním volném kanálu.
|
Nahrajeme hudbu a spustíme ji ve smyčce.
|
Vypneme mixer.
|
Myslím, že tento kód by měl stačit pro představu, jak se knihovna SDL_mixer ovládá. Pokud potřebujete svůj projekt v SDL ozvučit, tak tato knihovna je jistě dobrou volbou.
Obsah seriálu (více o seriálu):
- SDL - profesionální hry jednoduše a snadno
- SDL a šetřič obrazovky
- SDL - 5 tipů a triků
- Mandelbrotova množina a jak na ní
- SDL_mixer - zvuky a hudba jednoduše a snadno
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007