Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#38

AW: MIDI-Hintergrundmusik in Delphi-Anwendungen abspielen lassen

  Alt 19. Dez 2014, 12:30
So, also nochmal von vorne. Dein Problem ist die Endlosschleife:
Delphi-Quellcode:
SetLength(BufLen, Len);
  SetLength(BufPos, Len);
  mciSendString('status mySound length', PChar(BufLen), Len, 0); // Länge der Mididatei ermitteln
  repeat
    mciSendString('status mySound position', PChar(BufPos), Len, 0); // aktuelle Position ermitteln ...
    Application.ProcessMessages;
    if Application.Terminated then
      break;
  until StrToInt(BufPos) >= StrToInt(BufLen); // ... bis Dateiende erreicht ist
Lässt du diesen Teil und diesen hier:

Delphi-Quellcode:
mciSendString('stop mySound', nil, 0, 0);
  mciSendString('close mySound', nil, 0, 0);

  if FileExists(tmpPath) then // temporäre Datei löschen
    DeleteFile(tmpPath);
weg, macht die Funktion was du willst.

Wenn du auf die aktuelle Position nicht verzichten kannst, musst du diesen Teil in einen Thread (oder Timer) auslagern.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat