5. diel - Hudba, zvuk a video, hlášky a vlastné mediaplyer
Začnime niečím, čo vám možno chýbalo, ale čo som vo svojich programoch mal! A to je HUDBA, ZVUKY a VIDEO! Samozrejme to ide! Začnime teda s MÉDII !:
Otvorte si položku System (v ponuke objektov), v ktorej je hneď vľavo Timer. Tretí zľava je to, čo hľadáme:
MediaPlayer
To vám prehrá skoro všetko! Najprv si povieme, aké má funkcie naviac a potom ako prehrávať určité súbory:
- AutoEnable - Keď nie je otvorená médium, sú tlačidlá na prehrávanie neprístupná. Keď sa ale otvorí, sú prístupné. Tu sa táto funkcia zapína (True) a vypína (False).
- AutoOpen - Ak zadáte adresu média (napr .: C: \ Windows \ Media \ Ding.wav), automaticky sa otvorí (keď nie je otvorené, nedá sa prehrať, ale keď sa otvorí neexistujúce médium, môže spôsobiť problémy). Tu sa táto funkcia zapína (True) a vypína (False).
- AutoRewind - Keď médium zastavíte tlačidlom (alebo príkazom) STOP, automaticky sa pretočí na začiatok (ak by sa nepřetočilo, nehralo by). Tu sa táto funkcia zapína (True) a vypína (False).
- ColoredButtons - Keď kliknete na malé plus vedľa nápisu, volíte, či budú tlačidlá pre prehrávanie farebná (Fasle znamená, že budú obrázky čierne!).
- DeviceType - Nastavenia, ktoré médium sa bude prehrávať (typ média). O tom budem písať nižšie podrobnejšie.
- Display - Ak prehrávate video, niekde sa musí objaviť obraz. Tu nastavíte, kde (napríklad nejaký panel, alebo samostatné okno ...).
- EnabledButtons - Tu nastavíte, ktoré tlačidlá budú prístupné.
- FileName - Toto je jedna z najdôležitejších položiek. Tu nastavíte adresu média (tj. Kde je médium (súbor hudby, zvuku alebo videa) umiestnené na disku, CD, diskete, DVD, webe alebo v sieti ... napr .: C: \ Windows \ Media \ Canyon.mid).
- VisibleButtons - Tu nastavíte, ktoré tlačidlá budú viditeľná.
A to je všetko! Sľúbil som, že sa trochu rozpíše o DeviceType. To sa však dozviete v jednotlyvých typoch médií:
Hudba
Tak tú si rozdelíme: Hudba môže byť dvoch typov:
1. typ: MIDI: hudba je v počítači uložená tak, že sú zadané noty, hudobné nástroje, tempo a množstvo ďalších vecí, pomocou ktorých počítač hrá. Je to veľmi úsporné, ale je to len melódie. Nejde k tomu spev. 2.Typ: WAVE: hudba je zaznamenaná rovnako, ako napríklad na CDčka. Je proste zaznamenaný zvuk a ten sa potom prehrá. To ale väčšinou zaberá príliš miesta. Ja používam iba MIDI hudbu. Tá má koncovku MID, alebo RMI. Ale to je jedno, čo z toho. Keď premenujete hudbu napr. Music.rmi na Music.mid, nič sa nestane. U WAVE hudby je to iné. Základný je asi koncovka WAV (zaznamenávajú sa s ňou hlavne zvuky). A potom dnes známejší MP3. Tá je trochu úspornejší. Ale najúspornejší je samozrejme MIDI! Ak chcete prehrávať hudbu z CD, nastavte DeviceType na dtCDAudio. Pre WAVE hudbu je tu položka dtWaveAudio. Ak ste si však z ponuky hudobných typov nevybrali, alebo plánujete prehrávať niečo, čo neviete, čo je to za typ, nastavte dtAutoSelect. To si samo zvolí to najvhodnejšie. (Hodí sa u MIDI hudby.)
To základné o hudbe už viete, takže ideme ďalej:
Zvuky
Zvuky sú proste WAVE médiá. Dajú sa nahrať pomocou mikrofónu. Mávajú väčšinou koncovku WAV. A teraz pár vecí k MP3: MP3 môže byť hudba aj zvuk (rovnako ako WAV). Ak váš WindowsMediaPlayer dokáže prehrať MP3 médiá (čo by mal), nemal by byť problém.
Tak to by boli zvuky .:
Video
Ha! A je to tu! Tu využijete aj položky Display. Keď u nej nič nenastavíte, zobrazí sa obraz v novom okne. Video je buď s koncovkou AVI (u DeviceType nastavte dtAVIVideo), alebo MPG (alebo taky MPEG - to môže niekedy blbnúť ... platí to isté, ako u RMI a MID!). A to je asi zase všetko.
To by boli typy! Ale ako je púšťať?
Je to jednoduché. Stačí pár príkazov:
- Open - Otvorí médium (hodí sa, keď u AutoOpen máte False).
- Play - Začne prehrávať médium.
- Pause - Pozastaví prehrávanie.
- Stop - Zastaví prehrávanie média (ak máte u AutoRewind True, pretočí sa médium na začiatok).
- Rewind - Pretočí médium na začiatok (hodí sa, keď u AutoRewind máte False).
Všetky predchádzajúce príkazy sa používajú takto:
Jmenoprehravace.Prikaz;
Pre pochopenie príklad:
MediaPlayer1.Open;
A teraz pár vecí, čo sa určite budú hodiť:
Adresa := ExtractFileDir(ParamStr(0))+'\';
Najlepšia vec, čo som kedy použil. Na čo? Adresa musí byť string (jednoducho premenná typu string pomenovaná Adresa)! No a ten príkaz vpravo vám vypíše adresu zložky, v ktorej máte uložený EXE súbor programu. Hodí sa to napr. Nasledovne:
Chcete prehrať MIDI súbor Hudba.mid. Máte ho uložený pri programe. Keby ste ako FileName zadali iba Hudba.mid, mohol by mať program problémy. Keď ale zadáte vyššie uvedený príkaz do procedúry OnCreate (keď sa vytvára okno) a ako FileName zadáte Adresa + 'Hudba.mid', tak už to bude bez problému. PS: Na konci príkazu je + '\'. Je to tam preto, pretože keď máte program napríklad uložený na adrese napr. C: \ Programy \ program1 \ Project1.exe, časť príkazu vpravo vám vypíše adresu C: \ Programy \ program1. Keď by ste nemali na konci príkazu + '\', museli by ste písať napr. Adresa + '\ Hudba.mid'. Ale to teraz nemusíte!
PS2 .: String Adresa sa môže vymenovať pokojne inak. (Ja používam Adresár - to ako Adresár)
Povedal som pár,-tak dve. A tu je tá druhá:
if MediaPlayer1.Position = MediaPlayer1.TrackLength[1] then
Áno, potom musíte napísať jeden príkaz, alebo ho ohraničiť Begin a Ende. Tento príkaz hovorí: Ak je pozícia MediaPlayeru1 (dĺžka prehrané časti média) rovnaká, ako dĺžka média v MediaPlayeru1, potom ...! Takže už určite viete, na čo sa to používa. Tento príkaz dáte niekam do časovača (Timer) a každú dobu Intervale v Timeru sa bude kontrolovať, či médium Unstrung. Ak áno, stane sa to, čo napíšete ďalej. napr .:
if MediaPlayer1.Position = MediaPlayer1.TrackLength[1] then MediaPlayer1.Play;
To sa celkom hodí, nie? A môžete pridávať hudbu a zvuky! Ale musíte mať MediaPlayer.
Kostra programu
A teraz si preberieme kostru programu! Nechápete? Však pochopíte! Tu je text, ktorý si Delphi samo napíše, keď zadáte novú aplikáciu a dvakrát kliknete na okno:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin end; end.
Preber si to postupne po odsekoch:
- unit Unit1; - Unit znamená jednotka. V našom prípade časť programu. Týmto nápisom musí začínať text každého okna. Je to proste úvod pre program, ktorý mu hovorí, že to, čo spúšťa sa (v našom prípade) menuje Unit1. - To je tá pravá časť príkazu!
- interface - To je opäť len pre program, aby vedel, že sa mu budú zadávať premenné a objekty!
- uses - Kvôli tejto položke rozoberám program! Tu je totiž zadané, ktoré súbory má program načítať, aby sa mohol vytvoriť EXE súbor. Všetky tieto súbory (alebo aspon väčšinu) by ste mali nájsť u Delphi v podadresári Lib! Väčšinou si všetko Delphi vyplní samo, ale niekedy musíte doplniť súbor sami!
- type - Tu sú zapísané typy objektov, alebo premenných, ktoré nie sú obsiahnuté v súboroch, ktoré sú zadané za uses! Tu máme:
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
Áno, to všetko patrí k sebe. TForm1 je názov typu objektu a class (TForm) značí, že je to Okno. Ďalej máme predpísané procedúry, ktoré sú nižšie oknu priradené (pozri. Nižšie). Pod private sa píšu premenné, ktoré smie použiť iba okno typu a premenné zapísané pod public, smie použiť všetky okná!
- var - Tak toto ak neviete, tak ste nečítali predchádzajúce návody a alebo vnímate jedným okom tam a bohvie kadiaľ von! Podľa toho, že je tu Form1: TForm1 ;, sa tu asi bude určovať názov okna! Áno! Vytvára sa tu objekt typu TForm1, ktorý sa volá Form1. Jasné? Snáď áno ...
- implementation - To, rovnako ako interface značí časť programu. Tentokrát ale už časť, ktorá sa bude vykonávať a bude vidieť navonok!
- {$ R * .dfm} - Toto značí ešte jeden súbor, z ktorého má program tiež čerpať dôležité veci (pozri. Inokedy).
- * Procedure - To už ale poznáte. Procedúry už sme preberali a vy iste viete, kam patrí!
- end. - End s bodkou značí koniec celého programu. A mám taký pocit, že už sme vám to niekedy hovoril (vlastne písal, ale vyjde to na rovnako!).
Tak! A teraz, keď som vám konečne vysvetlil, kde čo v programe je, sa vráťme k WAVE súborom. Špeciálne s koncovkou WAV! U uses som písal, že niekedy sa musí súbor zapisovať. A tak si ho zapíšeme, aby ste mohli používať nasledujúce príkazy. Pred bodkočiarka na konci uses teda vpíšte:
- MMSystem - Tým jsete programu povedali, že budete používať prehrávanie wavů bez prehrávača! (Môžete aj s ním, ale je to zbytočné!) Tu je príkaz, ktorý k tomu slúži:
PlaySound(Název souboru, 0, typpřehrávání);
- Názov súboru je napr .: 'zvuk.wav', 0 je 0 a typy prehrávanie vám dva základné napíšem:
- SND_ASYNC - Zvuk sa raz zahrá (to je základné funkcie)
- SND_LOOP - Zvuk sa hrá neustále dookola (keď skončí, spustí sa znova).
PS: Nedajú sa prehrávať dva zvuky naraz.
Hlášky
Prestaňme už preberať médiá! Čo tak okno s hláškou? Napr .: "Naozaj chceš ukončiť hru?" Takže do toho: Slúži k tomu jediný príkaz:
if Application.MessageBox(PChar('hláška'),PChar('názevokna'), MB_tlačítka) = Tlačítko then
: -O ... Šialené, ale ľahko vysvetliteľné!
Namiesto hláška doplníte to, čo sa objaví v okne ako text.
Namiesto názevokna napíšete to, čo bude napísané na okraji okna (proste
nadpis)!
Namiesto tlačidla doplníte napr .: OK - vznikne teda MB_OK.
A miesto Tlačidlo doplníte napr .: IDOK.
A teraz si preberieme typy názvov za MB_:
- OK - v okne bude iba tlačidlo OK
- OKCANCEL - v okne bude tlačidlo OK a Zrušiť
- YESN - v okne budú tlačidlá Áno a Nie
- YESNOCANCEL - v okne budú tlačidlá Áno, Nie a Zrušiť
- RETRYCANCEL - v okne budú tlačidlá Znovu a Storno
- ABORTRETRYIGNORE - v okne budú tlačidlá Zrušiť, Znova a Ignorovať
Môžete si tiež pridať obrázok. Za napr. MB_YESNO napíšete + MB_ a niečo z týchto možností:
- ICONEROR - obrázok chyby
- ICONINFORMATION - obrázok informácie
- ICONWARNING - obrázok chyby
- ICONQUESTION - obrázok otázky
MB _... už prebranej máme a tak sa pusťme do položky uvedené ako Tlačidlo. Táto časť textu totiž určuje, ktoré z ponúkaných tlačidiel bolo stlačené. možnosti:
- IDOK - bolo stlačené OK
- IDCANCEL - bolo stlačené Storno
- IdYES - bolo stlačené Áno
- IdNO - bolo stlačené Nie
- IdABORT - bolo stlačené Zrušiť
- IdRETRY - bolo stlačené Znovu
- IdIGNORE - bolo stlačené Ignorovať
A nakoniec si uveďme príklad:
id := Application.MessageBox(PChar('Pozor! Program má problémy s načtením souboru!'),PChar('Chyba!'), MB_ABORTRETRYIGNORE + MB_ICONEROR); if id = IdABORT then Close else if id = IdRETRY then ProceduraNactiSoubor;
Hodnotu id si uložíme to vopred pripravené premenné, bude to klasický integer. Ak kliknete na Zrušiť, program skončí. Pokiaľ na Znova, spustí sa procedúra ProceduraNactiSoubor. Ak kliknete na Ignorovať, program bude pokračovať v práci. PS: Ak máte iba MB_OK, stačí písať len
Application.MessageBox(PChar('hláška'),PChar('názevokna'), MB_OK);
a ďalej len to, čo sa stane po odkliknutí okna!
Scrollbar
A na záver jeden objekt z položky Standart: scrollbar - To je to, čo vidíte vpravo na okne! A niekedy aj dole! Ten posuvník. Funguje podobne ako TrackBar (pozri minule - bod 7.) až na pár vecí navyše:
- Kind - Nastavíte, či je posuvník zhora nadol, alebo zľava doprava (vodorovný, alebo zvislý)
- LargeChange - Keď kliknete niekam na lištu posúvača, ukazovateľ sa pohne o niekoľko miest smerom k miestu, kam ste klikli. Tu nastavíte, o koľko miest (o aký počet) sa posunie.
- Pagesize - Tu nastavíte šírku posuvníka (v pixeloch)
- SmallChange - Tu nastavíte, o koľko miest sa posunie posúvač, keď kliknete na šípku na kraji lišty. (Väčšinou to býva nižšie číslo než LargeChange)
Program
A dochádza na to pre vás asi najsmutnejšie: KONIEC! Už len príklad a je po všetkom!
Čo takto vyrobiť si prehrávač Videá hudby a zvuku? Najprv vytvorte MediaPlayer. Volá sa Hudba a je neviditeľný. Potom dve tlačidlá. HudbaStop (tak sa bude jedno menovať) bude mať nápis Stop a HudbaPlay (to je to druhé) bude mať nápis Play. Kliknite 2x na okno a píšte:
Hudba.FileName := 'Hudba.mid';
Hudba.Open;
A nezabudnite k programu priložiť MIDI hudbu pomenovanú Hudba.mid! Po stlačení HudbaStop nastavte Hudba.Stop; a po stlačení HudbaPlay nastavte Hudba.Play ;. A máte prehrávač hudby! Teraz pridáme video: Vytvorte opäť MediaPlayer. Volá sa Video a je neviditeľný. Potom dve tlačidlá a panel. VideoStop (tak sa bude volať prvé tlačidlo) bude mať nápis Stop a VideoPlay (to je to druhé) bude mať nápis Play. Nech je nepomíchají s tlačidlami k Hudbe! Panel pomenujte panel a smažte Caption. U mediaplayer Video nastavte Display na Panel (Delphi by ho malo ponúknuť!). Kliknite 2x na okno a píšte:
Video.FileName := 'Video.avi';
Video.Open;
A nezabudnite k programu priložiť AVI video pomenované video.avi! Po stlačení VideoStop nastavte Video.Stop; a po stlačení VideoPlay nastavte Video.Play ;. A máte prehrávač videa! A nakoniec zmena! Nebudeme dávať MediaPlayer! Do položky uses dopíšte MMSystem.
Potom vytvorte tlačidlo Zvuk s nápisom Zvuk. Po kliknutí u neho nastavte:
PlaySound('Zvuk.wav', 0, Snd_Async);
A opäť nesmiete zabudnúť vytvoriť zvuk.wav! A je to! Primitívne, ale čo iného so zvukom a videom? Ja viem! Rozhodne niečo iné, ale už je neskoro: -D! Tak ahoj nabudúce!
A nakoniec som pre vás pripravil balík MIDI hudby (329kB, po rozbalení 1,08MB), ktorý keď rozbalíte (je dolámal WinZIP), získate 60 rôznych celkom slušných pesničiek! Nájdete ho priložený v archíve na konci článku. A ak sa vám nepáči, hľadajte inde na internete a určite nejaké iné nájdete ...
... Kukensius
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 607x (3.86 MB)
Aplikácia je vrátane zdrojových kódov v jazyku Delphi