Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
Delphi 6 Personal
|
Re: The Old-Style-Music-PLAY-Function
11. Nov 2009, 14:44

Zitat von Teekeks:
die Unit crt gibts bei TurboPascal ^^
Ganau.
Zitat:
aber ich glaub das "Beep" laß ich auch mit drinnen.
Na das hoff ich doch.
PS.: Crt.pas
Das hilft aber nichts. Ab Win NT bekommt man keine Zugriffsrechte auf den Speakerport.
Wenn man dos nimmt ist das kein Problem.
Früher bei Win95 & Co ging das so:
http://www.delphi3000.com/articles/article_3766.asp
http://delphi.about.com/cs/adptips20...ltip0303_3.htm
Delphi-Quellcode:
Program Wave_To_Speaker;
uses
dos, crt, ssystem;
type
WavHdr = record
riff : array[1..4] of char;
fsize : longint;
wave : array[1..4] of char;
fmt : array[1..4] of char;
info16 : longint;
info1 : integer;
channel : integer;
sampfreq: longint;
bytesec : longint;
bytesamp: integer;
sampbit : integer;
data : array[1..4] of char;
seqsize : longint;
end;
const
max = 64000;
var
buf : array [0..max] of byte;
fh : file of byte;
res, leng : word;
n : word;
hdr : wavhdr;
procedure PlayPuffer;
var i: Word;
begin
for i:=0 to leng do
begin
{if buf[i] > 128 then sound(hdr.sampfreq); nosound;}
if buf[i] > 128 then sound(hdr.sampfreq + buf[i])
else nosound;
delay(1);
end;
nosound;
end;
procedure readfile(filename: string; WaveInfo: Boolean);
begin
assign(f, filename);
reset(f,1);
blockread(f, hdr, sizeof(hdr), res);
leng := hdr.seqsize;
if leng > max then
begin
leng := max;
Writeln('File to long!');
Writeln('Datei wurde von ', hdr.seqsize,' Byte auf ', leng,' Byte gekuerzt.');
end;
blockread(f, buf, leng, res);
Writeln(res, ' Byte gelesen!');
close(f);
if WaveInfo then
begin
writeln('Dateiname : ',FileName);
writeln('ID1 : ',hdr.riff);
writeln('FileSize : ',hdr.fsize);
writeln('ID2 : ',hdr.wave);
writeln('ID3 : ',hdr.fmt);
writeln('ID4 : ',hdr.info16);
writeln('PCM-Format : ',hdr.info1);
writeln('Kan„le : ',hdr.channel);
writeln('Sampelrate : ',hdr.sampfreq);
writeln('Byte pro Sec.: ',hdr.bytesec);
writeln('Byte-Sample : ',hdr.bytesamp);
writeln('Bit-Sample : ',hdr.sampbit);
writeln('ID5 : ',hdr.data);
writeln('SeqSize : ',hdr.seqsize);
end;
end;
BEGIN
ClrScr;
readfile('D:\Wuhu.wav', true);
PlayPuffer;
END.
|
|
Zitat
|