![]() |
[Komponente] Bass Player Komponente: TBassDLLPlayer (+Demos)
Liste der Anhänge anzeigen (Anzahl: 4)
Das Projekt wird nicht weiter entwickelt oder unterstützt. :arrow: KOMPONENTE Update 20.08.2006 Beschreibung: Komponente zum einfachen Einbinden der BASS.DLL Funktionen, wobei die BASS.DLL als Unit dynamisch eingebunden ist (BASS.DLL muss nicht extra als Datei weitergeben werden). Package ist mit Delphi 6 erstellt, für Versionen unter Delphi 6 sollte ein neues erstellt werden. Name: TBassDLLPlayer Version: 1.26 Features:
:arrow: Eine Erweiterte Komponente (+ Demo) ![]() ![]() Mit ihr ist es möglich mehrere Sound-Kanäle gleichzeitig abzuspielen. Unbedingt Sehenswert. :thumb: ![]() :arrow: DEMOPROGRAMME Beschreibung: Demoplayer Update 20.06.2005 Programm: BassPlayer ![]() Version: 1.06 Features:
![]() Programm: SimplePayer Demos Beschreibung: Verschiedene einfache Demo Player Features:
Update: Ich habe nun noch eine zweite Version namens TBassPlayer mit den selben Features wie TBassDLLPlayer mit hinzugefügt. Diese Version benutzt die externe BASS.DLL (Version 2.3). Getestet unter OS: Win98 (+DirectX) / Win2000 / WinXP Nicht Getestet: Zusammenarbeit von mehreren BassDLLPlayern in einem Programm. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ Autor ....: ![]() ![]() Edit by ..: turboPASCAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ Weiterhin gelten die Lizenen der BASS.DLL Autoren. ![]() Das Projekt wird nicht weiter entwickelt oder unterstützt. Es kann zu Problemen bei der Installation kommen wenn andere / neuere Bass.dll-Versionen im Windows bzw. Windows/System32/-Verzeichnis vorhanden sind. Da die Entwickler der Bass-Lib ![]() und ggf. grössere Änderungen vornehmen, kann ich diese Komponente nicht immer, aus Zeitgründen, auf den aktuellen Stand halten. Bei Delphiversionen ab D2007 lässt sich die Komponente laut eineigen Usern nicht installieren oder verwenden. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi turboPASCAL
mir gefällt dein project sehr gut :roll: aber ich habe mal eine frage zum source code! Also ich möchte gerne eine mp3 datei aus dem selber ordner von deinem player abspielen lassen. Normal müßte man ja folgenden code nutzen.
Delphi-Quellcode:
wie muß ich das abändern das er die datei aus dem ordner automatisch anspielt?
procedure TForm1.Button1Click(Sender: TObject);
begin sndPlaySound(PChar('Test.mp3'),SND_SYNC); end; oder gibt es ein guide wo so sowas zu finden. Hoffe du kannst mir weiter helfen. Habe noch keine erfahrungen mit der base Komponente. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Delphi-Quellcode:
Fertig.
procedure TForm1.Button1Click(Sender: TObject); //Sound laden und wiedergeben
begin BassDLLPlayer1.LoadFromFile('test.mp3'); // Datei Laden BassDLLPlayer1.Volume := 50; // Volumevoreinstellung 0..100 BassDLLPlayer1.Play; // Abspielen end; procedure TForm1.Button2Click(Sender: TObject); // Sound anhalten, kann mann muss aber nich' begin BassDLLPlayer1.Stop; end; PS.: Schau dir mal den SimplePayer an :wink: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Huhu turboPASCAL :-D
besten dank für deine schnelle hilfe auf mein problem. werde mir deine SimplePayer version mal ansehen^^ Bei mir läüft dein project ohne probleme. Danke noch mal für diesen nützlichen source code :wiejetzt: Finde es besser als die dll variante :roll: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ähh. Irgendwas verstehe ich jetzt nicht so ganz. Es gibt doch bei Torry.net bereits eine Komponente TBassPlayer. :gruebel: Hat der was mit dir zu tuen, oder ist deins eine komplette Neuentwicklung?
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Die TBassPlayer Komponente von
![]() DLL's (BASS.DLL, in_mp3.dll usw.) müssen als extra Datei zum Programm mitgeliefert werden. Die Komponente auf einfache Weise ins Programm einbauen mit wenig Kentnissen ? Ich war auf der Suche nach einer einfacheren Art einer Bass-Player Komponente um sie in Delphi ähnlich wie den TMediaPlayer zu verwenden. Bei der TBassDLLPlayer Kompo. wird die BASS.DLL (enthalten in einer Unit "Bass_Dynamic.pas") mit in das Programm eingebunden (wird dynamisch in den Speicher geladen). Somit braucht man nich nocht eine extra File zu seinem Programm mitgeben und es ist unabhängig welche Version der BASS.DLL der Anwender installiert hat (Versionskonfikte vermeiden). |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi,
wenn die Komponente keinen Parameter benötigt, wie soll man damit dann eine Playlist prgorammieren ? |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Du sagst ja der BassPlayer-Kompo welches Lied sie spielen soll. Welches Lied das ist, musst aber du bestimmen und den Parameter bei LoadFile übergeben |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi,
in der neuen Version Demoplayer 1.05 ist leider das programmwindow zu klein, so daß nicht alle Controls zu sehen sind. So sehe ich erstmal keine Möglichkeit eine Playlist zu laden. Oldman |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi, OldMan thx for download and testing
:wiejetzt:, hast Du schon mal den [>>] - Button verwendet, oder wie ist das gemeint ? |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo TurboPascal,
ich habe den Player schon runtergeladen und sofort im Schnellstart untergebracht, da er mir so gut gefällt. Ich höhre während der Arbeit eigentlich immer Musik und den Mediaplayer von MS muss ich nicht haben. Skins brauche ich nicht, da sowieso im Hintergrund. KLASSE :hello: mfg BrunoT PS: die Komponente schau ich mir auch noch an. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Spitze, gefällt mir außerordentlich gut!
Nur eines stört noch ein wenig und zwar, dass die Wiedergabe unterbrochen wird, wenn man ein Lied zur Playlist hinzufügt, aber wie gesagt, dennoch klasse. Resourcenschonend und trotz Visualisierung eine erstaunlich geringe CPU-Auslastung. :thumb: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo TurboPascal,
wie kann ich erreichen, dass in der Playlist der nächste Titel gespielt wird? Kann man den Pfad zur Datei nicht weglassen, oder zumindesten nur beim aktiven Song irgendwie im Label anzeigen? mfg BrunoT |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Bonjour, thx for download and testing
@Matze Das liegt an der Komponente in der in der Function LoadFromFile ein "Stop is Sound playing" eingebaut, weil beim laden eines Songs der Puffer freigegeben wird. @BrunoT Eigentlich ist der BassPlayer nur ein Demo zur Komponente, und ich wollte da nicht so viel oder "verkomplizierten" Quellcode bauen, werde mal die Playliste ein wenig ver(schlimm)bessern. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi,
ich hatte nur den fertigen DemoPlayer 1.05 runtergeladen und mal getestet. Als ich jetzt mal compelieren wollte, habe ich leider festgestellt, daß dies mit meiner Delphiversion (Delphi 5) nicht geht. Kennt keine Variants, rtl nicht vorhanden und auch Probleme mit der Compileranweisung ALIGN 8. Ab welcher Delphiversion sind diese Sachen denn vorhanden? gruss OldMan |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hui, Delphi 5 :gruebel:, sorry habe nur Delphi 6 PE, eventuell gibt es im Forum ja jemanden der Helfen kann.
PS.: habe es jzt oben dazugeschriben D6 PE |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
kann das nicht jemand von den Könnern downgraden, bitte?
habe auch nur Delphi 3... wär denn da viel zu ändern? abgesehn vom GUI |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
THX for Download and Testing over 50x download Neue überarbeitete Versionen hochgeladen :hi: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich habe ebenfalls eine Komponente mit dem gleichen Namen programmiert nur das es meine schon länger gibt. Man sollte sich wegen des Namens mal einigen.
![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi, Hallo! :hi: DU HAST EINE PN
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich habe jetzt gemerkt, dass der ursprüngliche code von mir war.
Ich habe nichts dagegen wenn mein Code verändert bzw erweitert wird sonst hätte ich ihn auch garnicht erst veröffntlicht. Allerding wäre es nett, wenn man mich vorher fragt besonders dann wenn man Den Code wieder veröffentlicht und das sogar unter dem gleichen Namen. Und sollte es auch selbstverstädlich sein, dass wenn ich Komponnten von anderen Leuten benutze, ich das dann auch erwähne und auf deren Homepage verlinke. mfg |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Mal als Anmerkung, er hat oben erwähnt, dass er den Autor nicht kennt und den Autor bittet sich bei ihm zu melden ;-) |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
:!: Habe oben den Ur-Autor (Gandalfus) hinzugefügt.
@ MagicAndre1981 Wenn ich sauer wäre, hätte ich das auch überlesen :zwinker: Ich hätte das eventuell besser Ausführen können, Sorry, mein Fehler. Zitat:
...und hätte ich gewust das er hier im Forum also um die Ecke... hätte, hätte, hätte... |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ausgehend von diesem
![]() Habe ich mich daran gemacht und die Begrenzungen, die einem die BassDllPlayer-Komponente auferlegt zu beseitigen. Das Speicherleck der DllLoader-Unit konnte ich leider noch nicht stopfen! (aber das habt ihr ja bei der alten Komponente auch nicht gemerkt) Trotzdem, vielleicht findet ja irgendwer den Fehler bzw. kann ihn beheben. Das Problem ist das die vier erstellen Sections.Base-Elemente durch VirtualFree nicht freigegeben werden. Die Unit ist richtig programmiert (so weit ich das sehen konnte). Der Speicher wird freigegeben aber MemProof sagt mir, dass bei dieser Freigabe ein Fehler passiert ist. Ich habe keine Ahnung, was da los ist (eventuell liegt es an SP2) Naja, egal kommen wir jetzt zur Komponente... Jetzt kann man endlich die Bereichs- und Überlauf- Fehlerprüfungen eingeschaltet lassen. hurra! Es können jetzt unendlich viele Komponenten (BassDllPlayerEx) in einem Programm verwendet werden. Jeder Komponente wird dabei eine Soundkarte zugewiesen. Bei neueren Soundsystemen kann man auch einfach mehrere Komponenten der gleichen Soundkarte zuordnen. Dies ist aber nicht erforderlich, da in jeder Komponente jetzt unendlich viele Kanäle definiert werden können. (Um Probleme mit älteren Soundsystemen zu vermeiden sollte man nur eine Komponente pro Soundkarte einsetzen - das geht dann immer!) Ich habe mal ein kleines Beispiel angehängt. (korrigierte Version! - bezogen auf oben erwähnten Thread) Es existiert keine Playlist mehr, sorry hatte ich jetzt keine Lust mehr drauf. Die Komponente muss nicht installiert werden, einfach entpacken, kompilieren und wohlfühlen... Das Programm testet fünf Soundkarten und legt für jede in einem PageControl eine Seite an. Wenn man nur eine Soundkarte hat, werden (in der IDE) vier Exceptions ausgelöst (also einfach weiterausführen). Wenn die Exe läuft bekommt man natürlich nichts davon mit. Ich breche die Schleife der Soundkarten nicht mit EXIT ab (weil: ich hasse exit, halt, break, goto). Auf jeder Soundkartenseite im PageControl können dann über die rechte Maustaste Kanäle hinzugefügt bzw. entfernt werden. Auf die Aufnahmemöglichkeiten der BassDllPlayer-Komponente bin ich nicht weiter eingegangen. Ich habe einfach die Vorgaben von der BassDllPlayer-Komponente übernommen. Ob das alles so funktioniert weiss ich nicht, mich interresierte nur das Abspielen - vielleicht kann das ja mal einer testen. Ich möchte mich hier ausdrücklich bei meinen Vorgängern (Gandalfus & turboPascal) bedanken. Eure Vorarbeit (im Besonderen das Einbetten der DLL in die EXE) hat mir sehr gefallen. Ich hoffe euch beiden (und natürlich jeden den es interessiert) gefallen meine Erweiterungen. Ich bin einfach konsequent den Weg weitergegangen, den Ihr beiden angefangen seit zugehen. Also nochmal danke für die Möglichkeit. MfG Thorsten Edit: Anhang gelöscht. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Im Gegensatz zur alten Komponente, welche öfters mal bei mir abstürzte (hatte mich deshalb nicht weiter mit ihr beschäftigt) funzt diese super. Ich bin schon dabei, mein MedienCenter bzw. AudioCenter auf diese Kompo umzustellen.
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, habe alles nochmal komplett überarbeitet.
Viel Spass Thorsten Edit: Anhang gelöscht. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, es gibt mal wieder was Neues.
Neue Version -> siehe vorherigen Post. Die Spezialfunktionen (Echo, Rotate, Flanger) sind jetzt als eigene Klassen vorhanden. Zusätzlich ist jetzt noch Reverb hinzugekommen. Einem Kanal können jetzt unendlich viele dieser Funktionen hinzugefügt werden. Jede Spezialfunktion muss von einer Grundklasse abgeleitet werden. Die Funktionen werden über ihren Namen angesprochen. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo,
ich nerve mal wieder! Aber es gibt wieder etwas Neues. (siehe oben) Auf Wunsch von kurtm1 ist die Positionierung und Zeitanzeige eines Liedes jetzt auch in Millisekunden zuhaben. Die Millisekunden-Funktionalität ist bis jetzt nur für Samples vorhanden. Da muss man noch mal nachbessern, habe jetzt aber leider keine Zeit mehr. MfG Thorsten PS: Habe jetzt 4 Wochen kein Delphi zur Hand, schaue trotzdem mal vorbei (kann aber erstmal nichts mehr ändern) |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hallo,
mal ne frage zu deinem code (tbassdllplayer) ist es beabsichtigt, dass do bei ...player.stop bass_channelpause statt bass_channelstop verwendest oder hast du das ggf. schon im update ausgebessert? mfg, heiopei |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Delphi-Quellcode:
:gruebel: ?
procedure TBassdllPlayer.Stop;
begin BASS_ChannelStop(Channel); if Modus = moSamples then Position := 0; end; procedure TBassdllPlayer.Pause; begin BASS_ChannelPause(Channel); end; |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo
Mal ne Frage zu der DLLLoader.pas Unit... Hat mal jemand versucht damit mehrere DLL`s in einer Appliaction einzubinden ?? Arbeite selber seit ca 1 1/2 Jahren mit der Bass.dll (+basswma.dll+bass_fx.dll) Problem wenn ich alle 3 DLL`s einbinde kracht die DLLLoader Unit bei
Code:
Liegt aber nicht an den DLL`s sondern sobald mehr wie eine DLL eingebunden wird....
InitializeLibrary
Gruss Chris |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Moin,
Zitat:
Wenn man über LoadLibrary eine DLL lädt, bekommt man einen Handle, leider hat man aber keinen Handle, wenn man über den DllLoader eine DLL in den Speicher lädt. Ich sehe leider noch keine Lösung für dieses Problem. Eigentlich müsste man die Windows-Funktion (LoadLibrary) benutzen, diese kann aber leider nur von der Platte und nicht aus dem Speicher laden. Vielleicht hat ja noch einer ne Idee... MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So ich bin wieder im Lande und melde mich wieder zu dem Thema dieser Units.
Also ich habe jetzt wirklich mal jede Unit zerpflückt, und bin dabei einmal auf die Lösung des Speicherlecks gestoßen: In der BassChannelU.pas steht folgender Code für das Laden einer Datei:
Delphi-Quellcode:
genau hier liegt das Problem, da die IF Abfrage niemaals in den unteren Teil des Codes leitet. Löscht man jedoch die Abfrage, so dass nur mehr
if _BassDll.BASS_ChannelIsActive(_Channel) = 1
then _BassDll.BASS_StreamFree(_Channel);
Delphi-Quellcode:
dort steht, ist daws Speicherproblem behoben.
_BassDll.BASS_StreamFree(_Channel);
Grüße an alle PS: Bitte gebt mir Anregungen für mein Programm " ![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo,
bin auch wieder da. Schön, dass du dich mit dem Problem beschäfitgt hast. Ich würde allerdings nur die IF-Anweisung entfernen und den CASE-Verteiler stehen lassen. _Modus steht auf moNone, bis eine Datei geladen wird. Somit wird beim erstenmal kein StreamFree oder MusicFree aufgerufen. Aber das ist Geschmacksache, im Destruktur wird auch einfach Free auf dem Channel gemacht. Wie hast du das mit dem Speicherleck getestet? Ich habe nämlich leider immer noch die selben Fehler und nicht freigegebene Speicherbereiche. Diese befinden sich in der DllLoaderU. Also, du hast bestimmt ein Leck gefunden, aber leider ist das eigentliche immer noch vorhanden. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
gg also habe ich ein anderes Leck gefunden
Naja ich habe gemerkt dass der verbrauchte Speicher extrem anwächst, wenn ich von vielen Dateien nacheinander die Songlänge einlese (daher einfach irgendeinen Datei mit "loadfromfile" herhole) Das hat mich auf die Spur gebracht |
Hallo,
wie habt ihr die playlist programmiert? bei mir spielt er immer nur das letzte lied ab ... Gruß Mister X |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi Mister X,
:gruebel: Wie und wo/wann kommt das zustande ? Im Normalfall sollte die Liste durchgespielt werden bis zum letzten Eintrag und dann stoppen. ...ich gebe ja zu, das die Playlist von mir ein wenig schlampig prog. ist...(Notlösung) :wink: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
also: dein demo-progranmm funktioniert, aber mein selbst geschriebener Player mit dem TBassDllPlayer machts nicht ... entweder bin ich zu blöd oder es liegt an der Ausführung ..:
Delphi-Quellcode:
Kann das sein dass die for-schleife zu schnell durchgegangen wird oder so?
num := Memo1.Lines.Count;
for i := 0 to num-1 do begin BassDllPlayer1.LoadFromFile(Memo1.Lines[i]); BassDllPlayer1.Play; end; Bei mir wird immer nur das letzte Lied abgespielt .... Gruß Mister X |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
ja
wenn du wissen willst wann das Lied zuende ist musst du in deinem timer den status des players abfragen. Wenn der gleich stopp ist kann ein neues lied ausgewählt werden. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
natürlich .... manchmal is man aber auch ...
danke gruß Mister X |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 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