![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
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:
wenn ich die 4 zeilen, die sehr langsam sind, durch "Zeit := ''" ersetze, geht die ganze prozedur viel schneller vor sich.
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 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 |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo,
es gibt mal wieder was neues... Nachdem ![]() 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. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
:thumb: Wenn das jetzt auch noch ein Editor wird. :roteyes:
//Edit: Bei der Playlist wäre ein Multiselect im Öffnendialog eine nette Idee. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hi,
ich habe gerade in der BassPlayerU.pas diese stelle entdeckt:
Delphi-Quellcode:
das heisst doch, dass man den bassplayer installieren kann, dass er in der komponentenpalette vorhanden ist?
procedure register;
begin RegisterComponents('Eigenes', [TBassPlayer]); end; 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:
kannst du diese begriffe mal kurz erklären?
channel.IsFadingOk
channel.doFadingOut channel.doFadingIn channel.FadeTime channel.FadeAuto channel.FadeStop channel.IsFadeOutPosition und noch eine frage: vorher hatte ich den player so erzeugt;
Delphi-Quellcode:
nun ist da noch das "GetLiedEvent" hinzugekommen. Für was ist denn das? und wie muss ich den player jetzt createn?
Player:=TBassPlayer.Create(1, Self);
danke für deine mühe urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo urbanbruhin,
Zitat:
Diese Komponente steht nicht als Visuellekomponente zur Verfügung. Zitat:
Zitat:
Delphi-Quellcode:
ist true, wenn ein Fading auf diesem Channel durchgeführt werden darf.
channel.IsFadingOk
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.
Delphi-Quellcode:
Führt das Ausblenden des Channel durch. Volume geht von der aktuellen Einstellung auf 0. Ausblendzeit = Fadetime * 1.5
channel.doFadingOut
Delphi-Quellcode:
Führt das Einblenden des Channel durch. Volume geht von 0 auf aktuelle Einstellung. Einblendzeit = Fadetime
channel.doFadingIn
Delphi-Quellcode:
Hier kann man die Ein- und Ausblendzeit beeinflussen. (in Sekunden, Voreinstellung = 2)
channel.FadeTime
Delphi-Quellcode:
Hiermit legt man fest, ob ein automatisches Fading stattfinden soll.
channel.FadeAuto
Delphi-Quellcode:
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.FadeStop
Delphi-Quellcode:
ist true, wenn die aktuell ermittelte Stelle zum Ausblenden erreicht oder überschritten wurde.
channel.IsFadeOutPosition
Zitat:
GetLiedEvent wird ausgelöst, wenn ein Channel ein neues Lied haben möchte. Hoffe das hilft dir weiter... MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hallo omata,
vielen dank für deine Antwort :angel: ich denke damit komm ich jetzt klar. THX :bounce1: Gruss urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
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. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@omata Welche Fehler hast du bei der KOmmunikation mit der bass.dll behoben? (Bezüglich der ersten Version)
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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