Hi!
Zitat:
Wie stelle ich das an ? Die MP3-Datei in welche die laufende Aufnahme geschrieben wird, ist gesperrt.
Mag sein, dass sie gesperrt ist, aber das liegt ja hier (zum Glück) in deiner Verantwortung, weil du den FileStream ja erstellst. Du könntest den Stream also so erstellen, dass die Datei nicht gesperrt ist, oder du machst deine Verarbeitung direkt in der StatusProc, was wohl sauberer wäre, hier ein Beispiel:
Code:
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
var
BPS: Integer;
begin
if (FileName = '') then
exit;
if (FileStream = nil) then
FileStream:= TFileStream.Create(FileName, fmCreate); // create the file
if (buffer = nil) then
FileStream.Free // finished downloading
else
// Ab hier geänderter Code
begin
FileStream.Write(buffer^, len);
// An den Anfang gehen
FileStream.Position := 0;
// Sachen machen...
// [...]
// Und wieder ans Ende gehen
FileStream.Position := FileStream.Size - 1;
end;
end;