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!




Kapcsolódó cikkek