Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Streamaufnahme - Code ergänzen (https://www.delphipraxis.net/131336-streamaufnahme-code-ergaenzen.html)

AlexII 23. Mär 2009 13:43


Streamaufnahme - Code ergänzen
 
Hallo,
ich verwende für die Streamaufnahme (netradio - Beispiel von bass.dll) folgenden Code:

Delphi-Quellcode:
var
  FileStream :  TFileStream;
  FileNeme  :  String;     // <= C:\test.mp3


function Get_AppPath : string;
begin
  result:= ExtractFilePath( ParamStr( 0 ) );
end;


procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
  if (buffer <> nil) and (len = 0) then
    SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer)));

  if (FileNeme = '') then
    exit;
  if (FileStream = nil) then
      FileStream:= TFileStream.Create(FileNeme, fmCreate); // create the file
  if (buffer = nil) then
      FileStream.Free // finished downloading
  else
      FileStream.Write(buffer^, len);
end;


function OpenURL(url: PChar): Integer;
var ....
begin
  FileNeme:= Get_AppPath + Form1.Filename_Edit.Text;
  ...
end;
Jetzt würde ich mal wissen wie ich am besten die Aufnahme stoppen kann und wieder Aufnehmen. Hab mit das Stoppen mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
FileStream.Free;
end;
versucht, aber das Prog stürzt ab. :gruebel:

AlexII 24. Mär 2009 11:36

Re: Streamaufnahme - Code ergänzen
 
Kann mir denn keiner einen verständlichen Tipp geben?
Ich bin Hobby Programmierer, hab schon alle meine Bücher abgeguckt, aber nix vernünftiges gefunden. :(

Gausi 24. Mär 2009 11:41

Re: Streamaufnahme - Code ergänzen
 
Wie ich im DF schon sagte: Speichere in einer Property oder einer Variable, ob du gerade aufnimmst oder nicht. Und dementsprechend führst du den Code zum Speichern aus oder halt nicht.

AlexII 24. Mär 2009 11:50

Re: Streamaufnahme - Code ergänzen
 
Hab gestern wie ein irrer versucht diese Lösung zu realisieren, aber nix ging. Wie gesagt ich bin Hobby Programmierer und das ist doch ne Nummer zu groß für mich...

wicht 24. Mär 2009 11:58

Re: Streamaufnahme - Code ergänzen
 
Weiß nicht ob ich dich richtig verstehe, aber versuch mal in dem Button folgenden Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  FileStream.Free;
  FileStream := nil;

  // ODER:
  FreeAndNil(FileStream);
end;
Sehr verspäteter Edit: Das ist natürlich quark, passt nicht zu deinem Code, habe mich verlesen schätze ich mal :zwinker: Mach es wie Gausi es sagte - nimm dir eine zusätzliche Variable, die du beim Start der Aufnahme auf true setzt und prüfe oben in StatusProc, ob diese durch einen Klick auf den Button auf false gesetzt wurde (= Aufnahme anhalten).


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz