AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Komponente] Bass Player Komponente: TBassDLLPlayer (+Demos)
Thema durchsuchen
Ansicht
Themen-Optionen

[Komponente] Bass Player Komponente: TBassDLLPlayer (+Demos)

Ein Thema von turboPASCAL · begonnen am 2. Jun 2005 · letzter Beitrag vom 5. Dez 2014
Antwort Antwort
Seite 13 von 34   « Erste     3111213 141523     Letzte »    
Benutzerbild von turboPASCAL
turboPASCAL
Registriert seit: 8. Mai 2005
Das Projekt wird nicht weiter entwickelt oder unterstützt.


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:
  • Abspielen aller Bass.DLL Formate (*.WAV;*.MP3;*.MP2;*.MP1;*.OGG; *.MO3;*.IT;*.XM;*.S3M;*.MTM;*.MOD;*.UMX')
  • Einfache Effekte (Echo, Flanger...)
  • Visualisierung
  • Aufnamefunktion (nicht Getestet)
Bugs:
  • Anzeige Position/Länge beim Abspielen noch nicht i.O.
  • Aktuelle Position von MOD - Files (Zeigt im Moment nur die Gesamtlänge)

Eine Erweiterte Komponente (+ Demo) BassPlayerEx zu diesem Thema hat omata geschrieben.
Mit ihr ist es möglich mehrere Sound-Kanäle gleichzeitig abzuspielen. Unbedingt Sehenswert. Preview


DEMOPROGRAMME

Beschreibung: Demoplayer Update 20.06.2005
Programm: BassPlayer Preview
Version: 1.06
Features:
  • einfache Playlist
  • einfache Visualisierung
  • Abspielen aller Bass.DLL Formate (siehe TBassDLLPlayer)
Demo-Player in der Version 1.09b

Programm: SimplePayer Demos
Beschreibung: Verschiedene einfache Demo Player
Features:
  • Datei öffnen und Wiedergabe (SimplePlayer 1)
  • Wiedergabegeschwindigkeit (SimplePlayer 2)
  • Visualisierung (LeftPeak, RightPeak) (SimplePlayer 3)
  • Equalizer (SimpleEQ)
  • Wiedergabe aus der Resource (SimpleRes)

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 ....: Gandalfus (TBassDLLPlayer Version 1.00) Homepage: www.blubplayer.de
Edit by ..: turboPASCAL

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
Weiterhin gelten die Lizenen der BASS.DLL Autoren. http://www.un4seen.com/


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 un4seen ihr Projekt stehst weiter entwickeln
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.
Angehängte Dateien
Dateityp: zip simpleplayerdemos-source_397.zip (46,5 KB, 1242x aufgerufen)
Dateityp: zip demoplayer-source_456.zip (16,6 KB, 1274x aufgerufen)
Dateityp: zip tbassdllplayer_414.zip (321,4 KB, 2047x aufgerufen)
Dateityp: zip bassplayerbin_859.zip (282,5 KB, 1262x aufgerufen)
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
 
100nF
 
#121
  Alt 7. Mär 2006, 20:50
Zitat:
@urbanbruhin: ja, jetzt verstehe ich was du meinst. Habe mich auch gerade mal dran gemacht. Musste dann allerdings feststellen, das diese Einstellungen dann natürlich für jeden Channel einzeln abgespeichert werden müssen. Da mein Beispiel keine Einschränkungen haben soll, sehe ich jetzt noch nicht ob das so sinnvoll ist das in mein Demo mit einzubauen. Im Prinzip ist es ganz einfach. In den Einstellungsframe der jeweiligen Visualisierung wird einfach der Kontruktor und Destruktor überschrieben und dann wird einfach die Lade- bzw. Speichermöglichkeit hinzugefügt (z.B. Ini-File oder sonst was...) und das war es dann auch schon.
ich denke auch, dass es sich nicht lohnt, das in die demo einzubauen.
wenn ich dich richtig verstanden habe, übernimmst du das mit dem speichern und laden? oder soll ich mal versuchen das selber in die hand zu nehmen?
ich muss allerdings sagen dass ich noch nie komponenten abgeändert und erst recht nicht erstellt habe...

Ich habe noch 2 kleine fragen:
1. Ist es möglich, über deine komponente Track-Informationen auszulesen? Wenn nicht mach ich es mit einer TJvID3v1 oder TJvID3v2.

2. kann ich folgende prozedur "verschnellern"?
Delphi-Quellcode:
procedure TForm1.TrackZumArchivHinzufuegen(Filename, Titel, Interpret, Album, Musikstil, Bewertung: String; Abgespielt: Integer; Hinzugefuegt: TDate; ueberschreiben: boolean);
var Litem: TListitem; aTitel, aInterpret, aAlbum, aMusikstil, Zeit: String; i: integer;
begin
  if not fileexists(Filename) then exit;
  i := trackindex(filename); // unwichtig
  if (i <> -1) and (ueberschreiben = false) then exit; // das auch
  TrackInformationen(Filename, aTitel, aInterpret, aAlbum, aMusikstil); // Diese Prozedur ist etwas langsam, ist aber nicht schlimm, kann man so lassen

  if Titel = '-Default-then
    Titel := aTitel;
  if Interpret = '-Default-then
    Interpret := aInterpret;
  if Album = '-Default-then
    Album := aAlbum;
  if Musikstil = '-Default-then
    Musikstil := aMusikstil;
  if Bewertung = '-Default-then
    Bewertung := '';
  if Abgespielt = -1 then
    Abgespielt := 0;
  if Hinzugefuegt = 00-00-0000 then
    Hinzugefuegt := Tdate(now);

  ChannelC.LoadFromFile(Filename); // Diese 4...
  ChannelC.Volume := 0; // ...Zeilen dauern...
  zeit := channelc.songtimeinfo[SongTimeLength].asSecString; // ...ziemlich lange,
  channelc.Stop; // Das sollte viel schneller gehen

  if i = -1 then // Ab hier wieder unwichtig
  begin
    Litem := Listview1.Items.Add;
    Litem.Caption := Titel;
    Litem.SubItems.add(Interpret);
    Litem.SubItems.add(Album);
    Litem.SubItems.add(Musikstil);
    Litem.SubItems.add(Zeit);
    Litem.SubItems.add(inttostr(Abgespielt));
    Litem.SubItems.add(Bewertung);
    Litem.SubItems.add(datetostr(Hinzugefuegt));
    Litem.SubItems.add(Filename);
  end
  else
  begin
    Litem := listview1.Items.Item[i];
    Litem.Caption := Titel;
    Litem.SubItems.Strings[0] := Interpret;
    Litem.SubItems.Strings[1] := Album;
    Litem.SubItems.Strings[2] := Musikstil;
    Litem.SubItems.Strings[3] := Zeit;
    Litem.SubItems.Strings[4] := inttostr(Abgespielt);
    Litem.SubItems.Strings[5] := Bewertung;
    Litem.SubItems.Strings[6] := datetostr(Hinzugefuegt);
    Litem.SubItems.Strings[7] := Filename;
  end;
end;
wenn ich die 4 zeilen, die sehr langsam sind, durch "Zeit := ''" ersetze, geht die ganze prozedur viel schneller vor sich.
wenn die prozedur so 5000 mal hintereinander ausgeführt werden, geht das sehr lange. wenn ich das mit dem zeit := ... weglasse, dauerts nur noch ein bruchteil von der zeit.

Also Meine Frage: kann man die track-spielzeit auch anders ermitteln, ohne dass das so lange dauert?

gruss
urbanbruhin
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#122
  Alt 12. Mär 2006, 08:31
Hallo,
es gibt mal wieder was neues...

Nachdem hier eine Frage zum Fading gestellt wurde, habe ich mich mal daran gemacht.

Die Neue Version kann jetzt also auch Fading zwischen einzelnen Channels, das funktioniert manuell aber auch automatisch. Der eigentliche Anfang und das Ende eines Liedes werden ermittelt und auch grafisch dargestellt.
Das heisst jetzt wird das Wavesignal auch angezeigt.
Zusätzlich habe ich noch eine Normalisierung eingebaut, so dass leise Lieder im Pegel angehoben werden und somit alle Lieder gleich laut ausgegeben werden.

Die Playlist ist nur ein schneller Versuch, damit man das automatische Fading komfortabel testen kann.
Die Playlist wird nur automatisch beim Fading benutzt, um also loslegen zu können müssen mindestens zwei Channels mit Liedern geladen werden. Und dieses erste Laden muss man zur zeit noch manuell machen.

Hoffe es gefällt,
viele Grüsse
Thorsten


@urbanbruhin: das solltest du über die Tags in der Datei ermitteln und nicht über die Bass.dll.
Wenn du dich noch etwas gedulden kannst, habe gerade in der neuen Version eine Unit
MPGTools drin, die genau das macht, allerdings wird das noch nicht benutzt.

Edit: Anhang gelöscht.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#123
  Alt 12. Mär 2006, 08:46
Wenn das jetzt auch noch ein Editor wird.

//Edit: Bei der Playlist wäre ein Multiselect im Öffnendialog eine nette Idee.
Matti
  Mit Zitat antworten Zitat
100nF
 
#124
  Alt 12. Mär 2006, 13:54
hi,

ich habe gerade in der BassPlayerU.pas diese stelle entdeckt:
Delphi-Quellcode:
procedure register;
begin
  RegisterComponents('Eigenes', [TBassPlayer]);
end;
das heisst doch, dass man den bassplayer installieren kann, dass er in der komponentenpalette vorhanden ist?
wie kann man denn diese komponente bei Delphi 2005 installieren?

ich habe mir die "BassDllPlayerEx v2[1].4" mal angeschaut.
das hier sollten die neuen funktionen sein denke ich:
Delphi-Quellcode:
channel.IsFadingOk
channel.doFadingOut
channel.doFadingIn
channel.FadeTime
channel.FadeAuto
channel.FadeStop
channel.IsFadeOutPosition
kannst du diese begriffe mal kurz erklären?

und noch eine frage:
vorher hatte ich den player so erzeugt;
Player:=TBassPlayer.Create(1, Self); nun ist da noch das "GetLiedEvent" hinzugekommen. Für was ist denn das? und wie muss ich den player jetzt createn?

danke für deine mühe

urbanbruhin
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#125
  Alt 12. Mär 2006, 16:53
Hallo urbanbruhin,

Zitat von urbanbruhin:
ich habe gerade in der BassPlayerU.pas diese stelle entdeckt:
Delphi-Quellcode:
procedure register;
begin
  RegisterComponents('Eigenes', [TBassPlayer]);
end;
das heisst doch, dass man den bassplayer installieren kann, dass er in der komponentenpalette vorhanden ist?
ja das ist eigentlich richtig. Da hast du den Finger genau in die Wunde gelegt. Das ist noch ein überbleibsel aus der TBassDllPlayer-Komponente von turboPASCAL. Ich habe das Projekt jetzt neu hochgeladen und die Komponente konsequent in TBassDllPlayerEx umbenannt. Wenn da jetzt Fehler auftreten, dann muss man die Komponente aus der Komponentenleiste (und ggf. von der Form) löschen.
Diese Komponente steht nicht als Visuellekomponente zur Verfügung.

Zitat von urbanbruhin:
wie kann man denn diese komponente bei Delphi 2005 installieren?
gar nicht, einfach benutzen. (also über uses einbinden)

Zitat von urbanbruhin:
ich habe mir die "BassDllPlayerEx v2[1].4" mal angeschaut.
das hier sollten die neuen funktionen sein denke ich:
Delphi-Quellcode:
channel.IsFadingOk
channel.doFadingOut
channel.doFadingIn
channel.FadeTime
channel.FadeAuto
channel.FadeStop
channel.IsFadeOutPosition
kannst du diese begriffe mal kurz erklären?
gern...
channel.IsFadingOk ist true, wenn ein Fading auf diesem Channel durchgeführt werden darf.
Dies ist der Fall, wenn die Datei im Channel komplett geladen und analysiert ist (Start- und Endpunkt ermittelt wurde) und wenn gerade kein Fading stattfindet.

channel.doFadingOut Führt das Ausblenden des Channel durch. Volume geht von der aktuellen Einstellung auf 0. Ausblendzeit = Fadetime * 1.5

channel.doFadingIn Führt das Einblenden des Channel durch. Volume geht von 0 auf aktuelle Einstellung. Einblendzeit = Fadetime

channel.FadeTime Hier kann man die Ein- und Ausblendzeit beeinflussen. (in Sekunden, Voreinstellung = 2)

channel.FadeAuto Hiermit legt man fest, ob ein automatisches Fading stattfinden soll.

channel.FadeStop Fadestop legt fest, ob nach dem Fading der Channel auf Stop oder Pause gehen soll. Im Beispiel geht er bei manuellem Fading auf Pause und bei automatischem Fading auf Stop. (Bei Pause wird an der aktuell gestoppen Stelle bei einem erneuten Fading weiter gespielt)

channel.IsFadeOutPosition ist true, wenn die aktuell ermittelte Stelle zum Ausblenden erreicht oder überschritten wurde.

Zitat von urbanbruhin:
und noch eine frage:
vorher hatte ich den player so erzeugt;
Player:=TBassPlayer.Create(1, Self); nun ist da noch das "GetLiedEvent" hinzugekommen. Für was ist denn das? und wie muss ich den player jetzt createn?
oh, da hatte ich jetzt nicht dran gedacht. Habe eine neue Version hochgeladen, in der der Konstruktor wieder so ist wie immer.
GetLiedEvent wird ausgelöst, wenn ein Channel ein neues Lied haben möchte.

Hoffe das hilft dir weiter...

MfG
Thorsten
  Mit Zitat antworten Zitat
100nF
 
#126
  Alt 12. Mär 2006, 21:58
hallo omata,

vielen dank für deine Antwort

ich denke damit komm ich jetzt klar.

THX

Gruss
urbanbruhin
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#127
  Alt 13. Mär 2006, 01:46
So, habe hier eine neue Version hochgeladen.

MfG
Thorsten
  Mit Zitat antworten Zitat
Der_Ventilator

 
Delphi 2010 Professional
 
#128
  Alt 13. Mär 2006, 11:44
Soweit ich weiß, basiert die Komponente auf Bass ver 2.1

Könnte man sie auf bass2.2 updaten, sodass deren neue pluginschnittstelle für die bass_wma, bass_cd und bass_ac3.dll verfügbar ist?

Würde nämlich auch gerne cds, ac3s (und leider auch wmas) abspielen können.

Zur Info: man kann nun mit 2.2 auch plugins definieren, sodass die Erweiterungen nicht mehr einzeln verwendet werden müssen, sondern die bass.dll nutzt sie automatisch; falls erforderlich.
  Mit Zitat antworten Zitat
Gandalfus

 
Delphi 2006 Professional
 
#129
  Alt 13. Mär 2006, 12:48
@omata Welche Fehler hast du bei der KOmmunikation mit der bass.dll behoben? (Bezüglich der ersten Version)
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#130
  Alt 13. Mär 2006, 20:31
@Der_Ventilator:
Die neuste Version arbeitet mit der Bass-Version 2.2. Es kann allerdings sein, dass ich noch nicht alle Funktionen durchgeleitet habe.
Zur zeit wird nur die bass_fx miteingebunden.

@Gandalfus:
Welche Versionen meinst du nun genau? Deine, die von turboPASCAL oder meine 1. Version.
Vielleicht kannst du mir da nochmal auf die Sprünge helfen.

MfG
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 13 von 34   « Erste     3111213 141523     Letzte »    


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 14:48 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