Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Speicherleck ? (https://www.delphipraxis.net/59806-speicherleck.html)

bluescreen25 28. Dez 2005 23:27


Speicherleck ?
 
Hallo,
mir ist aufgefallen im WinTaskManager das mein MP3-Player kontinuierlich an Speicherverbrauch zunimmt, wenn ich den abspielenden Track wechsel. (ca. 70-100KB pro Track)

habe die fehlerhafte procedure gefunden.

Delphi-Quellcode:
procedure Tmediaplayer_frm.media_scroll_txt_run;
 begin
    begin
      Channel := Bass_StreamCreateFile(false,PChar(playlist.Strings[currentsong]),0,0,
                                  Bass_Stream_Decode); // wie gebe ich den Speicher wieder frei ?
     
      media_scroll_txt.Speed:= 20;
      Lauftext:= TAGS_Read(channel, '%ARTI'+ ' ---- '+'%TITL');
      Application.ProcessMessages;
      media_scroll_txt.Text:=(Lauftext);

    end;
 end;

Bernhard Geyer 29. Dez 2005 10:57

Re: Speicherleck ?
 
An dieser Funktion ist nichts verwerfliches.
Probier aber mal MemCheck um den Fehler sehr einfach zu finden.

jim_raynor 29. Dez 2005 11:20

Re: Speicherleck ?
 
MMh. Vielleicht solltest du den alten Channel auch wieder freigeben. Da gabs auch irgendeine BASS-Funktion für, aber da ich keine Anleitung zur Hand habe, weiss ich nicht welche das ist ;) Musst einfach mal schauen.

bluescreen25 29. Dez 2005 12:15

Re: Speicherleck ?
 
Zitat:

Zitat von jim_raynor
MMh. Vielleicht solltest du den alten Channel auch wieder freigeben. Da gabs auch irgendeine BASS-Funktion für, aber da ich keine Anleitung zur Hand habe, weiss ich nicht welche das ist ;) Musst einfach mal schauen.

Jepp, genau das war es:

Delphi-Quellcode:
procedure Tmediaplayer_frm.media_scroll_txt_run;
 begin
    begin
      Channel := Bass_StreamCreateFile(false, PChar(playlist.Strings[currentsong]), 0, 0, Bass_Stream_Decode);
      media_scroll_txt.Speed:= 20;
      Lauftext:= TAGS_Read(channel, '%ARTI'+ ' ---- '+'%TITL');
      Application.ProcessMessages;
      media_scroll_txt.Text:=(Lauftext);
      BASS_StreamFree(Channel);
    end;
 end;
Jetzt klappts auch mit der "Nachbarin" ! :dancer2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.

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