AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WAV File Info?

Ein Thema von PeterPanino · begonnen am 16. Sep 2022 · letzter Beitrag vom 17. Sep 2022
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: WAV File Info?

  Alt 17. Sep 2022, 16:05
EurekaLog meldet: Die AudioWerkzeugeBibliothek (v2.0) erzeugt Memory Leaks:

memleak.png

Hier ist der EurekaLog CallStack:

callstack.png
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.

Geändert von PeterPanino (17. Sep 2022 um 16:52 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: WAV File Info?

  Alt 17. Sep 2022, 16:48
Man kann die Memory Leaks vermeiden, indem man diesen Code einsetzt:

Code:
procedure TSimpleTagger.FormDestroy(Sender: TObject);
begin
  MainAudioFile.Free;
end;
Alternativ kann man auch diesen Code verwenden:

Code:
MainAudioFile := AudioFileFactory.CreateAudioFile(FileListBox1.FileName);
  try
    if assigned(MainAudioFile) then
    begin
      MainAudioFile.ReadFromFile(FileListBox1.FileName);

      EdtTitle.Text := MainAudioFile.Title;
      EdtArtist.Text := MainAudioFile.Artist;
      EdtAlbum.Text := MainAudioFile.Album;
      EdtGenre.Text := MainAudioFile.Genre;
      EdtYear.Text := MainAudioFile.Year;
      EdtTrack.Text := MainAudioFile.Track;
      Memo1.Clear;
      Memo1.Lines.Add(Format('Type:     %s', [MainAudioFile.FileTypeDescription]));
      Memo1.Lines.Add(Format('FileSize  %d Bytes', [MainAudioFile.FileSize]));
      Memo1.Lines.Add(Format('Duration  %d millisec', [MainAudioFile.Duration]));
      Memo1.Lines.Add(Format('Bitrate   %d kBit/s', [MainAudioFile.Bitrate div 1000]));
      Memo1.Lines.Add(Format('Samplerate %d Hz', [MainAudioFile.Samplerate]));
      Memo1.Lines.Add(Format('Channels: %d', [MainAudioFile.Channels]));
    end
    else
    begin
      EdtTitle.Text := '';
      EdtArtist.Text := '';
      EdtAlbum.Text := '';
      EdtGenre.Text := '';
      EdtYear.Text := '';
      EdtTrack.Text := '';
      Memo1.Clear;
    end;
  finally
    MainAudioFile.Free;
  end;
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
902 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: WAV File Info?

  Alt 17. Sep 2022, 17:09
Bei der Alternative solltest du dann aber nicht mehr auf "speichern" klicken. Denn dann ist das MainAudioFile schon zerstört, aber nicht NIL, so dass der Zugriff darauf dann (vermutlich) fehlschlägt. Das ist in dieser simplen Demo ein "globales" Objekt, und auch sonst ist es sinnvoll, das auf der global für die Form zu haben, nicht nur in den einzelnen Actions.

Das Free beim Beenden ist natürlich sinnvoll. Aber danach ist es ja eh weg.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: WAV File Info?

  Alt 17. Sep 2022, 18:25
Zitat:
Das Free beim Beenden ist natürlich sinnvoll. Aber danach ist es ja eh weg.
Danke für den Hinweis - habe ich auch schon bemerkt. Ich mache es jetzt in Destroy. Weil mich die Eurekalog-Meldungen beim Beenden stören.

Danke nochmals für die Bibliothek - es ist wirklich ein Glanzstück!
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.

Geändert von PeterPanino (17. Sep 2022 um 18:29 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 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-2025 by Thomas Breitkreuz