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++
Učíme se Win API - 26.
winapi_logo
19. srpna 2002, 00.00 | V tomto pokračování nahlédneme do světa multimédií ve Windows. Naučíme se
používat ten nejjednodušší způsob přehrávání multimediálních souborů pomocí tzv.
MCI - Media Control Interface
V tomto pokračování nahlédneme do světa multimédií ve Windows. Naučíme se používat ten nejjednodušší způsob přehrávání multimediálních souborů pomocí tzv. MCI - Media Control Interface. I když v současnosti je již toto rozhraní částečně nahrazováno technologií DirectX, stále má své místo a lze jej s úspěchem používat. Umožňuje nám jednoduchým způsobem přehrávat nejrůznější typy multimediálních souborů, jako zvuky (wav, midi, wma, mp3), videoklipy (avi, wmv, mpeg apod). V podstatě jedinou podmínkou úspěšného přehrání je nainstalovaný kodek, nutný pro soubor daného typu a komprese.
Pro použití MCI musíme přidat hlavičkový soubor Video pro Windows - Vfw.h a odpovídající knihovnu - vfw32.lib. Ukážeme si nyní velice jednoduchý přehrávač, který bude umožňovat vybrat a spustit přehrávání souboru, toto přehrávání kdykoli ukončit a dále během přehrávání jej ručně přerušit a poté ve stejném místě klipu pokračovat v přehrávání. V této ukázce bude samozřejmě použita jen malá část funkcí MCI, takže zájemci o podrobnější proniknutí do této problematiky mohou pokračovat ve studiu dokumentace (nejlépe MSDN).
Pro vytvoření MCI okna přehrávače záznamů použijeme funkci MCIWndCreate, která zaregistruje příslušnou třídu, vytvoří okno a pokud zadáme také jméno souboru, otevře jej a připraví pro přehrávání.
|
Pokud funkce proběhne úspěšně, vrátí nám handle okna - přehrávače záznamů. Tento handle pak budeme používat jako parametr dalších funkcí, ovládajících přehrávání multimediálního klipu. Když se podíváte do dokumentace, zjistíte že jako parametr dwStyle můžeme použít některý (nebo kombinaci více hodnot) styl specifický pro MCI okno. Můžeme například určit, zda okno má mít vlastní panel s ovládacími prvky (playbar), zda má zobrazovat aktuální pozici v klipu apod. V našem příkladě jsem použil styl MCIWNDF_NOPLAYBAR (bez ovládacího panelu), v kombinaci s klasickými styly okna WS_POPUP a WS_BORDER. Znamená to, že pokud se bude jednat o videoklip, bude tento přehráván v samostatném plovoucím okně (bez toho, aby bylo umístěno na jiném okně jako dětské okno) a navíc bude mít jednoduchý okraj. Přehrávání pak bude možno ovládat pouze z okna aplikace. Samozřejmě můžete experimentovat s různými styly okna. Například není problém přehrávat klip v dětském okně hlavního okna aplikace apod.
Při spuštění dialogu ještě zakážeme tlačítka ovládající klip. Tyto pak budeme povolovat pouze po spuštění přehrávání, kdy naopak zakážeme tlačítko spuštění klipu do té doby, než bude aktuální přehrávání ukončeno. Podívejme se tady jak budeme reagovat na stlačení tlačítka "Přehrát soubor":
|
Jak jsem se již zmínil, handle MCI okna můžeme nyní použít jako parametr v široké škále MCI funkcí. Zde si ukážeme ty nejjednodušší. Zastavení přehrávání klipu pomocí makra MCIWndStop a zrušení MCI okna bude vypadat následovně:
|
Podobně pro přerušení přehráváni a pokračování od místa přerušení realizujeme pomocí maker MCIWndPause a MCIWndPlay.
|
K dalšímu studiu doporučuji podívat se na přehled maker, funkcí a zpráv začínajících na "MCI". Zjistíte například, jak nastavovat intenzitu zvuku - MCIWndSetVolume, jak upravovat rychlost přehrávání - MCIWndSetSpeed, jak zvětšit či zmenšit obraz videoklipu - MCIWndSetZoom a také jak zachytávat zprávy informující o některých událostech při přehrávání.
Zde si můžete stáhnout ukázkový projekt win_api_26.zip.
Obsah seriálu (více o seriálu):
- Učíme se Win API - motivační úvod
- Učíme se WinAPI - Začínáme
- Učíme se WinAPI - 3.
- Učíme se Win API - 4.
- Učíme se Win API - 5.
- Učíme se Win API - 6.
- Učíme se Win API - 7.
- Učíme se Win API - 8
- Učíme se Win API - 9.
- Učíme se Win API - 10.
- Učíme se Win API - 11.
- Učíme se Win API - 12.
- Učíme se Win API - 13.
- Učíme se Win API - 14.
- Učíme se Win API - 15.
- Učíme se Win API - 16.
- Učíme se Win API - 17.
- Učime se Win API - 18.
- Učime se Win API - 19.
- Učime se Win API - 20.
- Učime se Win API - 21.
- Učime se Win API - 22.
- Učime se Win API - 23.
- Učime se Win API - 24.
- Učíme se Win API - 25.
- Učíme se Win API - 26.
- Učíme se Win API - 27.
- Učíme se Win API - 28.
- Učíme se Win API - uživatelsky kreslený ListBox
- Učíme se Win API - uživatelsky kreslený ListBox II
- Dialog výběru složky a naplnění ListBoxu soubory
- Vyhledávání souborů - zjištění obsahu složky
- Pracujeme s ComboBoxem ve WinAPI
- Pracujeme s ComboBoxem II.
- Rozšířený prvek ComboBoxEx
- Ovládací prvek TrackBar
- Ovládací prvek Progress Bar
-
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