Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Piatok, 17. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 391 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    Delphi seriál: (1.časť)

Tento seriál je určený pre pokročilých programátorov Delphi. Myslím, že nie je obtiažne pochopiť jednoduché syntaxové zvraty, ktoré sa síce od iných programovacích jazykov líšia, ale zvyknúť si na ich praktickú aplikáciu. Pravdou je, že programovanie v delphi je istým odrazovým mostíkom do sveta algoritmov, možno aj preto, že predčí ostatným programovacím jazykom svojou jednoduchosťou. Nemýľme si pojem jednoduchosť a elementárnosť! Tak hor sa do objektového programovania.


Dekóder MP3
Bohužiaľ doposiaľ nie je na internete žiaden komponent, ktorý by dokázal tak obľúbený formát prehrávať. Tí ktorí pátrali po internete, určite zistili, že neexistuje žiaden dekóder, ktorý by bol napísaný v inom programovacom jazyku, ako C/C++. Takže zástancom pascalu, či iných programovacích jazykov určite stuhol úsmev na tvári. Ak sa vám predchádzajúce riadky javia ako nezmyselné len preto, že ste na internete našli komponent určený na prehrávanie mp3, tak vás musím upozorniť, že sa jedná len o úbohé volanie funkcií DLL knižníc, ktoré sú napísané v C/C++. Aby sme mohli zahájiť ušľachtilý proces programovania, musíme si stiahnuť komponent z www.eldos.org . Pre nás je z celého balíka zaujímavý iba súbor dynamickej knižnice EIAMP.ESP. Aj keď je koncovka dynamických knižníc zväčša *.DLL, malá zmena nie je vadou. Veď pri volaní jej funkcií je externý zdroj definovaný aj s koncovkou, takže je nám to úplne jedno. Po skončení inštalácie sa na palete komponentov objaví nový komponent TEIPlayerMan. Jeho najdôležitejšou vlastnosťou je vlastnosť Players, ktorá obsahuje zoznam všetkých dekóderov. Ako som už spomínal, my sa budeme uberať len jedným smerom (mp3) a tak budeme hovoriť len o dekóderi MP3. Problém s ktorým som sa stretol v čase testovania vznikol pri prehrávaní mp3, kde bola použitá Variable Bitrate. Dekódovanie bolo bezproblémové, ale funkcie Size a Position nevracali korektné hodnoty.

Prehrávanie MP3
Komponent TEIPlayerMan pridáme na formulár a zrolujeme jeho vlastnosť Players. Stlačíme tlačidlo add, čím do zoznamu pridáme nový dekódovací modul (EIAMP.ESP). Inicializáciu prevedieme jednoduchou zmenou položky Initialized na hodnotu True. V prípade ak komponent nevyhlási chybu, bol dekóder úspešne inicializovaný. Prepínač inicializácie vrátime do polohy False a začíname programovať. Najjednoduchší spôsob realizácie prehrávača je v použití dvoch tlačidiel. Po stlačení prvého tlačidla:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
 Mp3.Players[0].Init;
 If OpenDialog1.Execute then begin
  With mp3.Players[0] do begin
   InputName:=OpenDialog1.FileName;
   Open;
   InitStream;
   Play;
  End;
 End;
End;

Tlačidlo Button1 definujeme ako play. Prvý riadok procedúry inicializuje dekóder, ktorým sme skúšali funkčnosť s dekóderom EIAMP.ESP. Okrem tlačidiel využívame aj komponent OpenDialog, pomocou ktorého priradzujeme súbory mp3 nášmu TEIPlayerMan. Otvorí sa, inicializuje a spustí. Samozrejme musíme vedieť skladbu aj zastaviť. Na to využijeme druhé tlačidlo Button2:
Procedure TForm1.Button2Click(Sender: TObject);
Begin
 Mp3.Players[0].Stop;
End;
Je dúfam samozrejmosťou, že pri ukončení programu je nutné uvoľniť alokované pamäťové miesto v udalosti OnClose príkazom:
Mp3.Players[0].Deinit;
Dôležitú úlohu pri prehrávaní súboru MP3 plnia vlastnosti BufferSize a BufferCount. Platí, že čím viac bufferov alokujeme (pamäťové miesto), tým je menšia pravdepodobnosť chyby reprodukcie. A na druhej strane sa tým predlžuje doba skončenia prehrávania po stlačení tlačidla stop. Treťou elementárnou funkciou potrebnou pri jednoduchom prehrávaní mp3 je pauza. Takže si pridáme tlačidlo a aplikujeme jeho udalosť OnClick.
Procedure TForm1.Button3Click(Sender: TObject);
Begin
 If Player.PlayerMode=pmPaused then begin
  Player.Resume;
  Button3.Caption:=’Pauza’;
 End else
 Begin
  Player.Pause;
  Pauza.Caption:=’Pokračovať’;
 End; 
End;
Aj keď nie je možné týmto komponentom vytvoriť druhý Winamp, je to dostačujúci spôsob prehrávania mp3 určený pre implementáciu do multimediálnych programov rôzneho zamerania (encyklopédie a pod.).

Nabudúce
Nabudúce sa pozrieme detailnejšie na štruktúru popisu súborov mp3, respektíve na prvú verziu takzvaného ID3 TAG popisu. Napíšeme si niečo o štruktúre ID3 TAG v.1. Následne si ho jednoducho vyextrahujeme.


Autor : DBDr. Jozef KOZAK, čítané 603200x, komentárov: 1
Hodnotenie :    |  Štvrtok, 3. Apríla 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system