Prehraje zvuk vo formáte wav na speakery PC
Delphi & Pascal (česká wiki)
Category: KMP (Club of young programmers)
Author: Aleš Kucik
web: www.webpark.cz/prog-pascal
Program: Speaker.pas, Mouse.pas, Textscr.pas
File exe: Speaker.exe
need: A.wav, B.wav, Mouse.tpu, Textscr.tpu
Author: Aleš Kucik
web: www.webpark.cz/prog-pascal
Program: Speaker.pas, Mouse.pas, Textscr.pas
File exe: Speaker.exe
need: A.wav, B.wav, Mouse.tpu, Textscr.tpu
Tento program spouštějte z DOSu (WINxx restartujte do DOSu)! Přehraje všechny soubory, ale hudbu uslyšíte jen u 8bit zvukových souborů bez komprese a musí být nahrány mono. Předem upozorňuji, že na některých SPEAKERECH zvuk asi nepůjde přehrát vůbec. Pokud si nevíte rady s nastavením "OVERSAMPLE", "MUTE" a "FREQUENCE" přečtěte si prosím příslušnou kapitolu v GDM3 (sekce překlady) a nebo je zkoušejte.
mouse.tpu, mouse.pas - použitá jednotka na ovládání myši. textscr.tpu, textscr.pas - jednotky pro ovládání výstupu na obrazovku.
Aby jste měli na čem testovat, tady jsou nějaké soubory:
a.wav - frekvence 8000Hz, 8bit (když pustíte zvuk na této frekvenci, je slyšet nepříjemné pištění - proto nastavte frekvenci na 32000Hz a oversample na 8 a mute vyzkoušejte mute 2,3,4 uslyšíte, co bude asi nejlepší.
b.wav - tady je druhý soubor tentokrát na 16000Hz (typ: frekvenci nastav na 16000, mute na 2 a oversample na 1) Pokud si budete chtít vytvořit nějaký vlastní soubory: Spusťte "Záznam zvuku" (od Microsoftu) a nějaký WAV uložte s libovolnou frekvencí, musíte, ale nastavit formát:PCM, 8bit mono.
mouse.tpu, mouse.pas - použitá jednotka na ovládání myši. textscr.tpu, textscr.pas - jednotky pro ovládání výstupu na obrazovku.
Aby jste měli na čem testovat, tady jsou nějaké soubory:
a.wav - frekvence 8000Hz, 8bit (když pustíte zvuk na této frekvenci, je slyšet nepříjemné pištění - proto nastavte frekvenci na 32000Hz a oversample na 8 a mute vyzkoušejte mute 2,3,4 uslyšíte, co bude asi nejlepší.
b.wav - tady je druhý soubor tentokrát na 16000Hz (typ: frekvenci nastav na 16000, mute na 2 a oversample na 1) Pokud si budete chtít vytvořit nějaký vlastní soubory: Spusťte "Záznam zvuku" (od Microsoftu) a nějaký WAV uložte s libovolnou frekvencí, musíte, ale nastavit formát:PCM, 8bit mono.
{ MOUSE.PAS Copyright (c) Ales Kucik } { Unit pro praci s mysi. } { } { Datum:29.11.2002 http://www.trsek.com } unit mouse; interface var ExMouse:boolean; procedure CursorEnable; procedure CursorDisable; procedure ReadState(var button,horiz,vert:word); procedure SetCo_or(horiz,vert:word); procedure GetPress(button:word; var state,number,horiz,vert:word); procedure GetRelease(button:word; var state,number,horiz,vert:word); procedure HorizRange(maximum,minimum:word); procedure VertRange(maximum,minimum:word); procedure SensiMouse(horiz,vert:word); procedure RealState(button:word; var state,number,horiz,vert:word); function ExistMouse:boolean; implementation procedure CursorEnable; assembler; asm push ax mov ax, $1 int $33 pop ax end; procedure CursorDisable; assembler; asm push ax mov ax, $2 int $33 pop ax end; procedure ReadState(var button,horiz,vert:word); var b,c,d:word; begin asm mov ax, $3 int $33 mov b, bx mov c, cx mov d, dx end; button:=b; horiz:=c; vert:=d; end; procedure SetCo_or(horiz,vert:word); assembler; asm mov ax, $4 mov cx, horiz mov dx, vert int $33 end; procedure GetPress(button:word; var state,number,horiz,vert:word); var a,b,c,d:word; begin asm mov ax, $5 mov bx, button int $33 mov a, ax mov b, bx mov c, cx mov d, dx end; state:=a; number:=b; horiz:=c; vert:=d; end; procedure GetRelease(button:word; var state,number,horiz,vert:word); var a,b,c,d:word; begin asm mov ax, $6 mov bx, button int $33 mov a, ax mov b, bx mov c, cx mov d, dx end; state:=a; number:=b; horiz:=c; vert:=d; end; procedure HorizRange(maximum,minimum:word); assembler; asm mov ax, $7 mov cx, minimum mov dx, maximum int $33 end; procedure VertRange(maximum,minimum:word); assembler; asm mov ax, $8 mov cx, minimum mov dx, maximum int $33 end; procedure SensiMouse(horiz,vert:word); assembler; asm mov ax, $F mov cx, horiz mov dx, vert int $33 end; procedure RealState; var a,b,c,d:word; begin asm mov ax, $5 mov bx, button int $33 mov a, ax mov b, bx mov c, cx mov d, dx end; state:=a; number:=b; horiz:=(c+8)div 8; vert:=(d+8)div 8; end; function ExistMouse:boolean; var a:word; begin asm mov ax, $0 int $33 mov a, ax end; if a=0 then ExistMouse:=false else ExistMouse:=true; end; begin ExMouse:=ExistMouse; end.