Einzelnen Beitrag anzeigen

Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#2

AW: Bass.dll Internet Radio - wie die letzten 5 Minuten bekommen, ohne Aufnahme stopp

  Alt 13. Jan 2016, 07:56
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;
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat