Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   BassPlayerEx bzw. Winamp Visualisierungsplugins (https://www.delphipraxis.net/67251-bassplayerex-bzw-winamp-visualisierungsplugins.html)

omata 11. Apr 2006 21:35


BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Liste der Anhänge anzeigen (Anzahl: 5)
So, es gibt neue Versionen vom BassPlayerEx...

mit erweiterten Soundeffekten (eine Soundkarte)
für mehrere Soundkarten (keine Spezielfunk.)

Der BassPlayerEx kann jetzt auch Winamp-Plugins einbinden. Dazu müssen die Dlls in einem Verzeichnis (Plugins) liegen, dass im selben Verzeichnis liegt, wie die Bassplayeranwendung.

Die Visualisierungen, die vorher in der EXE einkombiliert waren sind jetzt hier auch als Plugins zubekommen.

Diese Plugins funktionieren auch im Winamp.

Viele Grüsse
Thorsten

100nF 16. Apr 2006 09:11

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
hallo omata,

ist denn das einbinden jetzt genau gleich wie vorher?
also etwa so:
Delphi-Quellcode:
var
  vis: TFrameVisTurboPascal;

//...

Vis := TFrameVisTurboPascal.create(self);

//...

vis.Paint(ActiveChannel, image321);

//...

vis.free;
oder geht das jetzt anders?

gruss
urbanbruhin

omata 17. Apr 2006 18:47

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo urbanbruhin,

das Einbinden erfolgt, indem man eine Dll in das Plugin-Verzeichnis kopiert und diese dann im Player auswählt. Das ist also so wie z.B. bei Winamp.
Wie die Dll aufgebaut sein muss, dafür habe ich die Beispiele gemacht. Alle Visnualisierungen, die vorher in der EXE waren sind jetzt in Pluginform als Dll + Source hier zu finden.

Also schau dir einfach mal die Beispiele an.

MfG
Thorsten

100nF 20. Aug 2006 08:04

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
hallo omata,

also ich habe jetzt sehr lange herumprobiert, doch ich kriege es einfach nicht hin, die plugins einzubinden. :wall:
ich habe jetzt ein Programm, das den TBassPlayerEx verwendet.
nun muss ich ja eine combobox reinsetzen, damit man ein plugin wählen kann.
aber was muss ich im code verändern, damit das funktioniert?

könntest du vielleicht alle code-teile mal einzeln posten, also was z.B. ins FormCreate rein kommt, oder ins FormClose usw.

Gruss
urbanbruhin

omata 20. Aug 2006 19:11

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo urbanbruhin,

das geht (mit deiner jetzigen Version) minimal so...
Delphi-Quellcode:
uses ... BassPlayerExU, BassChannelU ...
:
  private
    FBassPlayerEx:TBassPlayerEx;
:
procedure TForm.FormCreate(Sender: TObject);
var BassChannel:TBassChannel;
begin
  FBassPlayerEx:=TBassPlayerEx.Create(1, Self);
  BassChannel:=FBassPlayerEx.addChannel(100);
  BassChannel.LoadFromFile('Lied.mp3');
  BassChannel.Play;
end;

procedure TForm.FormDestroy(Sender: TObject);
begin
  FBassPlayerEx.free;
end;

procedure TForm.ButtonClick(Sender: TObject);
begin
  FBassPlayerEx.ShowVisControlForm;
end;
Mit ShowVisControlForm wird das Kontrollfenster für die Visualisierungen geöffnet. Die Plugins müssen in einem Ordner Plugins der im Programmverzeichnis liegen muss, liegen.

Ich habe gerade eine neue Version hochgeladen, jetzt kannst du auch ohne VisControlForm Plugins laden...
Delphi-Quellcode:
procedure TForm.ButtonRunClick(Sender: TObject);
begin
  FBassPlayerEx.RunVisPlugin('vis_dizzy.dll', 0);
end;

procedure TForm.ButtonQuitClick(Sender: TObject);
begin
  FBassPlayerEx.QuitVisPlugin;
end;
Gruss
Thorsten

100nF 20. Aug 2006 21:14

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo omata,

Vielen Dank!! :bounce1:

aber zwei fragen habe ich noch:
wenn ich mit RunVisPlugin ein Plugin lade, und später ein anderes laden will, muss ich dann zuerst QuitVisPlugin und dann RunVisPlugin aufrufen, oder genügt es, immer RunVisPlugin zu verwenden und beim beenden des programmes QuitVisPlugin aufzurufen?

und die zweite frage:
wie kann ich jetzt auf die einstellungen der visualisierungen zugreifen (verändern), ohne das einstellungs-fenster aufzurufen?

Gruss
urbanbruhin

omata 20. Aug 2006 22:11

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo urbanbruhin,

RunVisPlugin schliesst eine geöffnete Visualisierung bevor eine neue geöffnet wird. Es geht also durchaus einfach nur RunVisPlugin zu benutzen.
QuitVisPlugin schliesst und entlädt die aktuelle Visualisierung. Wenn man eine Visualisierung nur wegklickt und sie nicht mehr sieht, läuft sie einfach weiter und verbraucht CPU-Zeit.
Beim Beenden des Programms wird eine geöffnete Visualisierung geschlossen. Du kannst aber brauchst nicht an das Schliessen zu denken, das übernimmt alles der BassPlayerEx.

Das ganze ist also sehr flexible. Trotzdem kann es zu Problemen kommen und das Programm mit einer Fehlermeldung abstürzen. Es scheint an den Visualisierungen zu liegen. Wie sauber die programmiert wurden.

Auf die Einstellungen der Plugins kann zur Zeit nur über das Kontrollfenster zu gegriffen werden. Da muss ich noch ein bißchen drüber nachdenken, wie da eine geeignete Struktur aussehen kann.

Gruss
Thorsten

100nF 21. Aug 2006 17:00

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hi,

ein kleines problem habe ich jetzt noch...

ich will für die visualisierung mein eigenes TImage32 verwenden.
aber wo muss ich den namen des TImage32 angeben, in dem die visualisierung erscheinen soll?

gruss
urbanbruhin

omata 21. Aug 2006 17:13

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo urbanbruhin,

ich verstehe deine Frage nicht so ganz. In den beiden Beispielen VisDizzy und VisCappellozza benutze ich doch auch TImage32. Hast du dir das mal angesehen?

Gruss
Thorsten

100nF 21. Aug 2006 17:20

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hi,

also wenn ich jetzt RunVisPlugin() ausführe, erscheint die visualisierung entweder in einem neuen fenster, oder einfach vollbild.

ich will aber die visualisierung auf dem formular meines programmes haben. wie mache ich das?

irgendwie blick ich da nicht so ganz durch... :shock:

EDIT: und übrigens ist ja bei den beiden Beispielen VisDizzy und VisCappellozza gar keine DLL vorhanden :gruebel:

gruss
urbanbruhin

omata 21. Aug 2006 17:29

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Achso das meinst du.

Tja, das geht leider nicht. Weil du ja nicht wissen kannst was das Plugin da erzeugt (wenn du zum Beispiel ein Winamp-Plugin einbindest)

Diese Möglichkeiten hatte ich ja in der ersten BassPlayerEx-Version. Dort waren dann aber die Visualisierungen mit in der EXE einkompiliert.

Das System über Plugins hat Vorteile & Nachteile. Genau wie das in die EXE einkompilieren Vorteile & Nachteile hatte. Es gibt eben nichts perfektes...

Die Darstellungslogik liegt jetzt komplett auf Pluginsseite.

Die Beispiele solltest du doch einfach kompilieren können, dann wird die jeweilige Dll erzeugt.

Gruss
Thorsten

100nF 21. Aug 2006 20:55

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hi,

Das ist schade dass das nicht geht, da mich ein neues fenster ziemlich stört...

könnte man aber z.B. eigene DLLs erstellen, die nur mit meinem programm funktionieren, und im gewünschten TImage32 angezeigt werden?
Dann kann man halt keine Winamp Plugins mehr laden, aber das ist nicht schlimm, mir genügen ca. 2 verschiedene visualisierungen.

Würde das funktionieren?
oder wie müsste ich das sonst lösen, damit ich die visualisierung in meinem TImage32 anzeigen lassen kann?

Ich hoffe es gibt eine Lösung dafür...

Gruss
urbanbruhin

omata 21. Aug 2006 21:19

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo urbanbruhin,

dann nimm doch die alte Version. Habe sie gerade wieder hochgeladen. Der Quellcode ist soweit identisch. Nur die Visualisierungsteile sind eben unterschiedlich.

Minimal-Beispiel siehe hier.

Gruss
Thorsten

100nF 22. Aug 2006 17:31

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Hallo omata,

OK dann mach ich es so...

ABER ich habe leider schon wieder ein problem (wie immer)...
Ich habe 2 BassChannels und ein Panel für die Visualisierung.
ich möchte nun, dass immer von einem Channel die Visualisierung angezeigt wird.
Dafür müsste ich während dem Programmlauf beim FFrameVisualisierung den Basschannel ändern können.

also etwa so:
Delphi-Quellcode:
// Visualisierung von Channel1 anzeigen
FFrameVisualisierung1.BassChannel := Channel1;
// Visualisierung von Channel2 anzeigen
FFrameVisualisierung1.BassChannel := Channel2;
ich hoffe das ist irgendwie machbar :gruebel:

Gruss
urbanbruhin

rollstuhlfahrer 10. Jan 2008 17:01

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab mal versucht eine vorhandene Visualisierung in eine WinAmp-Visualisierung zu quetschen. Leider klappt das nicht so wie gewollt.

Anbei 2 Quelltextarchive ( Simple Oszilloskop VIS - Ver 2.zip von turboPASCAL von hier und vis_rollstuhlfahrer von mir)
Die Visualisierung vom zuerstgenannten soll in das zweitgenannte rein.

rollstuhlfahrer

PS: Dumme Fehler passieren mir auch mal (aber oft genug)

rollstuhlfahrer 13. Jan 2008 06:18

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
irgendwie versteh ich die Welt nicht mehr... :wall: :wall: :wiejetzt:

in meinem Programm mit BassPlayerEx kommt entweder nur der schwarze Hintergrund oder Windows zeigt einen Programmabsturz an. WinAmp hab ich leider grad nicht greifbar, sonst würd ich es dort auch mal testen. Wenn du sagtsr, dass es geht, warum läuft es dann nicht mit BassPlayerEx?? :duck:

rollstuhlfahrer

100nF 18. Jul 2008 21:02

Re: BassPlayerEx bzw. Winamp Visualisierungsplugins
 
hallo,

also ich hab ja vor einiger zeit schonmal danach gefragt aber es lässt mich einfach nicht in ruhe...^^

gibt es überhaupt keine möglichkeit, eine funktion einzubinden, mit der man das aktuelle bild von der visualisierung auf ein TImage32 auf der Hauptform meiner Anwendung bringt?
das wäre echt der oberknaller wenn das ginge!!

ich weiss einfach nicht was ich machen soll wenns wirklich nicht geht...ich brauche diese funktion unbedingt, jedoch würde ich auch gerne mit den winamp-plugins arbeiten da dies sehr vorteilhaft ist. und ein umsteigen auf eine alte version des BassPlayerEx kommt eigentlich auch nicht in frage, denn ich möchte immer wenn möglich mit der aktuellsten version arbeiten.

ich habe leider zu wenig ahnung wie das funktioniert mit den DLLs, darum weiss ich nicht ob mein wunsch überhaupt möglich wäre, oder ob das ein ding der unmöglichkeit ist.

ich hoffe mir kann jemand helfen :roll:

mfg


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