Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: The Old-Style-Music-PLAY-Function

  Alt 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.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat