Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi wie gibt man mit bassdllplayer-Kompo ein lied frei? (https://www.delphipraxis.net/57896-wie-gibt-man-mit-bassdllplayer-kompo-ein-lied-frei.html)

padavan 28. Nov 2005 14:25


wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
Hallo Leute,
ich mal wieder mit der Bassdllplayer - Komponente.

so spiele ich ein Lied mit Bassdllplayer ab:

Delphi-Quellcode:
bassdllplayer1.loadfromfile(irgendein Song);
bassdllplayer1.play;
wenn ich nach Liedende einen neuen Titel in den Bassdllplayer lade mach ich das nochmal genauso.

Delphi-Quellcode:
bassdllplayer1.loadfromfile(nächster Song);
bassdllplayer1.play;
Allerdings fehlt mir da scheinbar noch ein Schritt, denn Lieder, welche schon einmal gespielt wurden (in dem Fall 'irgendein Song' und 'nächster Song'), werden auf Betriebssystemebene erst wieder freigegeben (z.B. Löschen) wenn das Programm ganz beendet wird.
Was mach ich da falsch?

Danke schonmal

JWeis 28. Nov 2005 14:39

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
spontane idee:
Delphi-Quellcode:
bassdllplayer1.stop
ich weiß es aber nicht.

padavan 28. Nov 2005 15:28

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
ne, leider nicht.
Das hatte ich schon versucht.
Trotzdem danke

Dieses führt zwar zum gewünschten Erfolg, danach funzt aber gar nicht´s mehr, oder besser, ich weiß nicht wie.
Delphi-Quellcode:
Bassdllplayer1.free;
bassdllplayer1.destroy;
ach so: ich mein das gleiche was man vergleichsweise hiermit erreicht:
Delphi-Quellcode:
Mediaplayer1.close;

turboPASCAL 29. Nov 2005 15:15

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
Hm, ja stimmt. Ich schaue mal nach. :gruebel:

// Edit:

Das ist ein Problem der Bass.dll, auch in der Version 2.2. Die Resourcen also zB. die geladene Datei wird erst nach dem Aufruf von Bass_Free; freigegeben.
Da kann ich an dem TBassDLLPlayer nichts ändern.

padavan 1. Dez 2005 11:05

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
könnte man das Problem irgenwie umgehen?
Dazu weiß ich zu wenig über diese Thema, aber so in der Art

1. Spiele Lied mit Bass ab

2. BassDllplayer1.free oder Bassdllplayer1.destroy

3. Jetzt irgendwie createn oder sonst wie - da fehlt mir das Wissen

4. nächstes Lied mit Bass spielen


Soviel hab ich schon ausprobiert, Bassdllplayer1.free und Bassdllplayer1.destroy lösen die Verbindung zur gespielten Datei.

Padavan

turboPASCAL 1. Dez 2005 14:32

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
Delphi-Quellcode:
var MyPlayer: TBassDLLPlayer;
...

MyPlayer := TBassDLLPlayer.Create(Self);
MyPlayer.LoadFromFile(...);
MyPlayer.Play;
...
MyPlayer.Free;
So kannst du den BassDLLPlayer dyn. erstellen, nat. ohne die Komponente auf der Form, sonst gibts n'en Fehler.

Das müsstest du aber bei jedem Song so machen. Empfehlen würde ich das aber nicht, da ich k.A. habe wie sich das auf die Speicher-u.Cpuauslastung auswirkt.

padavan 2. Dez 2005 05:25

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin turboPascal,

was hälst du davon?
Ich habe mit einem 933MHz - Rechner im Taskmanager nichts auffälliges entdeckt....

Gruß
Padavan

padavan 7. Dez 2005 12:43

Re: wie gibt man mit bassdllplayer-Kompo ein lied frei?
 
Also ich hab mich tatsächlich mal dran gemacht und mein Programm diespezüglich modifiziert.
Soweit klappt auch das meiste recht gut, aber es gibt Zustände im meinem Programm, bei denen (aufgrund nicht gradliniger Programmierung :stupid: )
nicht einfandfrei klar ist, ob die Komponente Bassplayer nun gerade "free" oder "created" ist.
Wenn man die doppelt "create n" oder "free en" will krachts - is klar.

Meine Frage nun, wie bekomme ich das ordentlich raus?

if Bassplayer = "free"
//oder
if Bassplayer = "created"

Na so in der Art halt.


Danke schonmal


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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