Delphi egy hang részének ismétlése?
Ha van egy .wav fájl és mindig csak egy részét szeretném időnként lejátszani, azt hogy lehetne megoldani minél rövidebb módszerrel?
Azért kell, mert nem akarok több hangot tárolni, legyen elég egy, meg a kíváncsiság hogy lehetséges.
"0,1 mp-et valahonnan a 2 mp-ből egyfolytában"
Ott már lehet, hogy a hullámformára, eleje-vége illeszkedésre is figyelni kell, mert különben csúnya tranziensek fogják torzítani a hangot.
Most esik le, hogy végül is mit is akarsz.
A hangokat nem kell külön tárolni, hanem 'betolod' egy erőforrás - *.res - file-ba és szépen befordítod a programba.
...
var ResStream: TResourceStream;
....
ResStream := TResourceStream.Create(HInstance, azonosító, RT_RCDATA);
....
Utána pedig PlaySound(ResStream.Memory, 0, SND_MEMORY or SND_ASYNC);
Pár másodperc wav file nem sokkal növeli meg a program méretét. Nekem minden 'beszélő' programom egyetlen exe file. Nincs mellette külön más file. Sőt ha dll-t használ
az is bele van fordítva és futtatás előtt megnézi, hogy létezik-e, ha nem 'kiírja magából'. Egyszerű trükkök, de végül is így csak egyetlen file-d van. Ha gondod van írj privátban.
SimkoL:
Kösz a válaszaid, egy probléma van még amiért elnézést kérek h nem fűztem hozzá, az pedig hogy a program mellett lévő hang fájl(ok) az mindig más lenne, sosem ugyanaz.
3. hozzászóló:
"Ott már lehet, hogy a hullámformára, eleje-vége illeszkedésre is figyelni kell, mert különben csúnya tranziensek fogják torzítani a hangot."
Ez nem fordul elő mert a felhasználó állíthatja be a kezdő és vég pontot a hang(ok)ban.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!