Autor Beitrag
powerpuetz
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 09.06.05 21:22 
Hallo.

Ich habe folgendes Problem.

Wenn ich aus einer Playlist ein Lied lade, wird die Speichernutzung meines Programmes immer mehr. Kann man das irgendwie verhindern?? Bzw. kann man den Speicher den der vorherige Song belegt hat freigeben, bevor ein neuer geladen wird?

Bei Unklarheit was ich möchte, bitte einfach nachfragen....

Gruß Tobias
Wishmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Do 09.06.05 23:38 
Hi

Wie viel Speicher frist er den?
Bei mir ist das so das wen ich ~ 80 Lieder gleichzeitig Lade um die Spilldauer zu berechnen
Frist das Prog. ~14,828 k nach 2~5 Minuten geht der Speicher runter auf ~3,496 k und bleibt dabei!

Versuche mal bevor du en Lied lädst (BASS_StreamFree(Channel); BASS_MusicFree(Channel); reinzusetzen. Wen dir das nicht weiter hilft dann kannst feileicht en wenig Code Zeigen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Procedure TAudioEngine.LoadFile(FileName : String);     // test
var stFlags, msFlags : DWORD;
begin

   BASS_StreamFree(Channel);
   BASS_MusicFree(Channel);


   Channel:= (BASS_StreamCreateFile(FALSE, PChar(Cur_FileName), 0, 0, stFlags));
        if (Channel = 0) then
   Channel:= (BASS_CD_StreamCreateFile(PChar(Cur_FileName), stFlags));


  if (Channel = 0) then
    begin
         Error('Selected file couldnt be loaded!');
     End

{if (Channel <> 0) then
    BASS_ChannelPlay(Channel, true);}

end;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
powerpuetz Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 10.06.05 15:04 
Hi.

Hab das mal ausprobiert. Bring aber nichts. Jedesmal wenn ein neues Lied anspielt wird ,wird die Speicherauslastung größer.

Aber mal ne Frage zum Code posten. Muss ich da irgendwas besonderes machen, oder einfach nur in Delphi makieren und dann hier einfügen?

Gruß Tobias
Wishmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Fr 10.06.05 22:34 
Titel: bass 2.1
Hi

Am besten währe es wen du dein Project mit winrar verpackst (ohne exe und dll) und es hier zum Download bereitstellst! Natürlich wen du keine geheimnise hast. Oder nur die Datei(pas)
Mit der du auf Bass zugreifst.

Benutzt du nur Bass.dll oder auch Plugs wie bass_acc.dll, bass_ape.dll,…?


Ich habe mal mein test Programm mitgeschickt kannst mal testen ob es bei dir auch soviel Speicher frist.


PS. Es ist noch nicht alles Funktionsbereit.
Einloggen, um Attachments anzusehen!
powerpuetz Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 11.06.05 12:22 
Hi. Also bei deinem Progg istdas nicht so. Hab jetzt mal in den Anhang ne rar Datei. Darin befindet sich der Code, die *dll's und ne exe. Einfach mal testen, den Code anschauen und mir dann sagen das der Code extrem verbesserungs bedüftig ist. *gg*

Würde mich freuen wenn wir das Problem mit dem Speicher lösen können.

Was evtl. noch zu sagen wäre. Ihr werdet merken das das ganze auf dem samplvis Beispiel aufbaut. Ausserdem bin ich noch ein ganz kleiner Programmierer, der gerne vorgegebenen Code übernimmt.

Gruß Tobias
Einloggen, um Attachments anzusehen!
huhn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Sa 11.06.05 13:28 
Hi :D !
hab mir mal dein prog angeguckt, was mir als erstes aufgefallen ist, ist das du 3 Timer hast :shock: und dann benützt du noch mod und ähnliches was normal en bissle langsam macht. Naja egal ich finde du bräuchtest höchstens 2 timer(wenn überhaupt, es gibt ja noch andere möglichkeiten), einen zum gucken wo des lied und etc und den zweiten für die visu. sleep(100); <-- find ich au net so gut!
auf den ersten blick bin ich leider auch ratlos wasrum dein programm, bei mir jedenfalls, 9mb arbeitspeicher frießt.
ich hab vor längerer zeit auch mal einen player gemacht,als ich noch grün hinter den ohren war*g*.
kannst ihn dir ja mal angucken(meiner nimmt 4-5mb in anspruch hat auch visu, tray 2 timer playlist drag'ndrop etc)
huhnau.hu.funpic.de/...ds/X-PlayerSetup.exe

mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
Wishmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Sa 11.06.05 19:40 
Hi

Also
1. dein Code ist absolut *mist*e! (unübersichtlich und voller feiler)
Zu deinem eigentlichen Problem, du musstest tatsächlich nur (BASS_StreamFree) einsetzen und das bevor du en Channel Kreierst (BASS_StreamCreateFile) davon hast du ja reichlich in deinem Code!

Es reich wen du nur einmal en Channel Kreierst (BASS_StreamCreateFile) und das nicht innerhalb eines Timers.

Tipp.

Schreib dir ne externe Unit in die du alle Funktionen rein schreibst mit den du auf Bass zugreifst, ne extra Unit für Playlist und Spectrum,….! Mach es übersichtlicher.

Wen du nur en EQ in dein Programm einbauen willst brauchst du keine bass_fx.dll