Játék hangokat Delphi - szoftverek
Ebben a cikkben megpróbálom kezelni három eljárások hangvisszaadás. Az ilyen eljárások alkalmazását helyett TMediaPlayer alkatrész jelentősen menteni a rendszer erőforrásait. Segítségével ezeket az eljárásokat meg lehet oldani elég széles körű feladatokat. Kezdjük a felülvizsgálat ezen eljárások, a legegyszerűbb.
A lényege ennek az eljárásnak - játszhat szabványos audio jelet telepítve a Windows, ha van egy hangkártya és a hang a szabványos, de ha nem, akkor a hang jön a PC-hangszóró formájában rövid kattintással. Ezt fel lehet használni, például amikor a felhasználó belép a hibás adatokat, vagy ha bezárja a formában:
eljárás TForm1.FormClose (Sender: TObject; var Action: TCloseAction);
kezdődik
Beep;
végén;
Mivel az első eljárás megértjük. Most lássuk a második.
Ez a funkció sokkal komolyabb, ez határozza meg, mint:
függvény MessageBeep (uType: szó). logikai;
UType paraméter jelzi a reprodukált hangot, mint egy partíció azonosítója [hangokat] adatbázis, amely rögzíti a hangokat, hogy a kísérő e vagy más Windows eseményeket. UType paraméter a következő értékeket:
- MB_ICONASTERISK - lejátszik egy hangot "csillag" (SystemAsterisk)
- MB_ICONEXCLAMATION - lejátszik egy hangot "Exclamation" (SystemExclamation)
- MB_ICONHAND - lejátszik egy hangot „Végzetes hiba” (SystemHand)
- MB_ICONQUESTION - lejátszik egy hangot, "Q" (SystemQuestion)
- MB_OK - lejátszik egy hangot "Standard hang" (SystemDefault)
Meg kell jegyezni, hogy ez a funkció játszik a hang aszinkron, azaz közben audio lejátszás Az alkalmazás tovább fut. Miután a hang kérelmet MessageBeep funkció átadja a vezérlést a hívó.
Ha nem tudja lejátszani a megadott hang, a függvény megpróbálja reprodukálni a hangot a szabványos rendszer, az alapértelmezett, és ha ez nem lehetséges, akkor a szabványos jelet a hangszóró lesz hallható.
Végül ott volt a leginkább érdekes és hasznos tulajdonsága a hang, amelyből most beszélni.
Ez a funkció lejátszani a hangot a hullám, nem csak a Windows esetén hallható. Funkció API Windows amelynek paraméterei vannak leírva mmsystem modult. Ezért, hogy használja ezt a funkciót a program, akkor meg kell adnia a uses a modul mmsystem. PlaySound függvény definíciója a következő:
funkció PlaySound (pszSound: PChar; HM: HINST; fdwSound: Cardinal): logikai;
PszSound paraméter nulla végződésű string (utolsó karaktere a string nulla-kód), ez határozza meg a hang. HM paramétert használjuk abban az esetben, ha a hang érkezik a forrás, hiszen nem ezt, akkor lehet, hogy 0-ra állítod, vagy nulla.
FdwSound utolsó paraméter, amely meghatározza, hogy milyen hangot lejátssza (lejátszási mód). Itt a legfontosabb értéke a beállított játszani tetszőleges hullám zászlókat.
- SND_ASYNC - hang lejátszása aszinkron, és a függvény visszatérési elindítása után azonnal lejátszásra. A lejátszás leállítása annak szükségességét, hogy hívja a PlaySound funkcióparaméter pszSound, értéke 0.
- SND_LOOP - hangvisszaadás folyamatosan ismétlődő, ugyanakkor azt kell megállapítani SND_ASYNC zászló.
- SND_NOSTOP - Ha a meghatározott hangot nem lehet reprodukálni miatt a foglalkoztatási források, a funkció azonnal hamis értékkel tér vissza (és nincs hang kerül lejátszásra). Ha ez a jelző nincs megadva, a függvény megpróbálja megállítani a lejátszást egy másik hang, az erőforrások felszabadítása.
- SND_PURGE - Megállítja az összes hangot okozott ez a probléma.
- SND_SYNC - szinkronizált lejátszása audio eseményeket. PlaySound a függvény csak a darab végén.
Megjegyzés: Zászlók lehet kombinálni, vagy működését.
A megadott paraméter pszSound hang, alkalmasnak kell lennie a megadott wave fájlok lejátszása, eszközmeghajtó, és igazodnia kell a rendelkezésre álló memóriát.
Szakítsa meg a hangvisszaadás lehet venni az üzemeltető
PlaySound (0, 0, SND_PURGE);
vagy úgy, egy új hang.
Például ahhoz, hogy ismételten és aszinkron vesztett kiválasztott hang a OpenDialog írhatunk kódot, mint ez:
Nos, remélem, minden világos! A következő alkalommal lesz valami bonyolultabb és érdekes!