// So kann man Wav-Dateien überlappend abspielen. Bedingung ist, dass der Titel,
// der überlappt werden soll, länger ist, als die Überlappungszeit
(logisch).


// Getestet mit D4 unter XP

uses mmsytem; 
 
const 
  z: word = 0; 
  ueberlappen: integer = 3500; // 3,5 Sekunden 
 
function SoundPlay(datei, alias: string): integer; 
var 
  r: array[0..29] of char; 
begin 
  MCISendString(pchar('open ' + datei + ' type waveaudio alias ' + alias), 
    nil, 0, 0); 
  MCISendString(pchar('set ' + alias + ' time format milliseconds'), nil, 0, 0); 
  result := MCISendString(pchar('status ' + alias + ' length'), r, 30, 0); 
  if result = 0 then result := strtoint(r) 
  else result := -1; 
  inc(z); 
  MCISendString(pchar('play ' + alias), nil, 0, 0); 
end; 
 
 
// Beispielaufruf für zwei Waves 
 
procedure TForm1.Button5Click(Sender: TObject); 
var 
  zeit: cardinal; 
  msek: integer; 
begin 
  msek := SoundPlay('C:\Funny\FR65E2.WAV', 'Titel' + inttostr(z)); 
  if msek > ueberlappen then begin 
    zeit := gettickcount - ueberlappen + msek; 
    repeat 
      application.processmessages; 
    until (gettickcount >= zeit) or Application.terminated; 
    SoundPlay('C:\Funny\KAHNSN.WAV', 'Titel' + inttostr(z)); 
  end; 
end; 



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke