HyperLink


Bejelentkezés
E-mail: 
Jelszó: 






Skip Navigation Links
 

Felvétel mikrofonról


Példaprogram letöltése

5660 bájt

Ebben a cikkben azt vizsgáljuk meg, hogy hogyan tudunk a számítógéphez csatlakoztatott mikrofonról hangfelvételt készíteni. Ehhez egy komponenst is készítünk, amellyel a hangfelvétel készítése egyszerűen elindítható és leállítható. Az elkészült hangfelvételt egy WAV fájlba mentjük el. A komponens az elmentett hangfájl lejátszását is lehetővé teszi.

A mellékelt példaprogram megnyitása előtt a SoundRec.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
FileName
Osztály: TSoundRec
property FileName: string;
Ebben a property-ben kell megadni a hangfájl nevét. Ha a fájl már létezett, akkor a felvétel elkezdésekor felül lesz írva.
BeforeRecord
Osztály: TSoundRec
property BeforeRecord: TNotifyEvent;
Ez az esemény a felvétel elkezdése előtt jön létre.
AfterRecord
Osztály: TSoundRec
property AfterRecord: TNotifyEvent;
Ez az esemény a felvétel befejezése után jön létre.
OnPlay
Osztály: TSoundRec
property OnPlay: TNotifyEvent;
A Play metódus meghívásakor, vagyis a hangfájl lejátszásakor jön létre ez az esemény, de csak akkor, ha a fájl létezik.
A hangfelvétel a StartRecord eljárás meghívásával kezdődik. Első lépésben le kell kérdeznünk a hangfelvétel készítésére alkalmas eszköz azonosítóját. Ezt az MciSendCommand függvénnyel tehetjük meg. Első paraméterként 0-t kell megadnunk, mivel még nem tudjuk az eszköz azonosítóját, éppen ezt akarjuk lekérdezni. A második paraméterként az MCI_OPEN konstanst adjuk meg, amely az eszköz megnyitását teszi lehetővé. A harmadik paraméterben az MCI_OPEN_TYPE és MCI_OPEN_ELEMENT konstansok kombinációját adjuk meg, ami azt jelzi, hogy a negyedik paraméterben megadott TMCI_Open_Parms struktúra lpstrDeviceType mezője tartalmazza a megnyitandó eszköz típusának nevét, az lpstrElementName mezője pedig az eszköz elem nevét (ez általában egy útvonal, de itt csak egy üres sztring).
  mciOpen.lpstrDeviceType:='waveaudio';
  mciOpen.lpstrElementName:='';
  MciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT OR MCI_OPEN_TYPE, cardinal(@mciOpen));
Ha sikerült megnyitni az eszközt, akkor az mciOpen struktúra wDeviceID mezője fogja tartalmazni az eszköz azonosítóját. Ezt eltároljuk az FDeviceID globális változóban, majd elindítjuk a felvételt, szintén az MciSendCommand függvény segítségével.
  FDeviceID:=mciOpen.wDeviceID;
  MciSendCommand(FDeviceID, MCI_RECORD, MCI_FROM OR MCI_RECORD_OVERWRITE, cardinal(@mciRecord));
Első paraméterként most már meg kell adnunk az eszköz azonosítját. A második paraméter az MCI_RECORD konstans, ami azt jelzi, hogy a hangfelvételt kell elindítani. A harmadik paraméterben az MCI_FROM és MCI_RECORD_OVERWRITE konstansokat adjuk meg, amelyek azt jelentik, hogy a negyedik paraméterben megadott TMCI_Record_Parms típusú struktúra dwFrom mezőjét vegye csak figyelembe, valamint új hangfelvétel készül, vagyis az előző felvétel felül lesz írva.
Ezzel a hang felvétele elindul, és mindaddig tart, amíg a StopRecord metódust meg nem hívjuk. Először is elmentjük a hangfelvételt, majd lezárjuk az eszközt. A mentéshez szükség lesz egy TMCI_SaveParms típusú struktúrára, amelynek lpfilename mezőjében adhatjuk meg a fájl nevét. Ezután az eszköznek elküldjük az MCI_SAVE parancsot, amelynek hatására a fájl mentése megtörténik. Ezután az MCI_CLOSE paranccsal lezárjuk az eszközt.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 273. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2010 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |