![]() |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Liste der Anhänge anzeigen (Anzahl: 1)
Den Timer würde ich vor dem Beenden abschalten,bzw. Du solltest die Zugriffe auf ChannelA mit
Delphi-Quellcode:
oder so ähnlich absichern.
if (channelA=Nil)then exit;
Delphi-Quellcode:
wo kommt denn das .Lied. her?
Len:=channelA.GetSongTimeInfo(SongTimeLength);
//bzw. TrackBarPosition.Max := ChannelA.SongTimeInfo[SongTimeLength].asMilliSecInteger; Ist das aus einer abgeleiteten Klasse? In meiner BasschannelU.pas gibts das .Lied nicht und brauche ich auch nicht. Bei Problemen einfach mal die einzelnen Units anschauen und mit Breakpoints debuggen (wenn sie dem Projekt zugefügt wurden). P.S. meine Units sind von Omata(supergeile TFramechannels) PPS. und das hier ist auch Quatsch weil "Lied" noch gar nicht existiert/Created ist,Du aber schon die Länge wissen willst
Delphi-Quellcode:
und zum Schluß die Katastrophe,geht gar nicht !!!
ChannelA.LoadFromFile(OpenDialog1.Filename);
TrackBar1.Max := ChannelA.Lied.SecLaenge; //<-- ????? ChannelA.Lied.create(OpenDialog1.Filename);
Delphi-Quellcode:
das hat im Timer nichts verloren und reicht im OnCreate der Form völlig aus,mal davon abgesehen das onchange und poschange genau das selbe machen
procedure TForm1.Timer1Timer(Sender: TObject);
var m1,s1:integer; begin if ChannelA.isComplete then begin Trackbar1.OnChange := Nil; //<- ! TrackBar1.Position := ChannelA.SecPosition; TrackBar1.OnChange := poschange; //<- ! und das überhaupt nicht nötig ist. Bei mir sieht das so aus und läuft prima,thx 2 omata bzw. an Alle ,die diese Zeilen verfasst haben.
Delphi-Quellcode:
Var _noAwnChangePos:boolean;
procedure TFrameChannel.TrackBarPositionChange(Sender: TObject); begin if _noAwnChangePos then _noAwnChangePos := False else ChannelA.MilliSecPosition := TrackBarPosition.Position; end; //Timer bzw. SonginfoUpdatetimer while not Assigned(Self) do exit; _noAwnChangePos:=True; TrackBarPosition.Position :=ChannelA.MilliSecPosition;; |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Wenn ich versuche es so einzufügen:
Delphi-Quellcode:
Dann wird bei mir SongTimeLength immer rot unterkringelt :/
TrackBar1.Max := ChannelA.SongTimeInfo(SongTimeLength);
Es steht dann dort: Zitat:
Zitat:
|
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
//edit gelöscht
|
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Ahja, danke =)
Jetzt wirds zwar immer noch rot unterkringelt aber es steht dort: Zitat:
|
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
//edit gelöscht
|
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Delphi-Quellcode:
Viel Spass !!!
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, BassPlayerExU, basschannelu, ComCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; TrackBar1: TTrackBar; Label1: TLabel; Label2: TLabel; TrackBar2: TTrackBar; Timer1: TTimer; Button2: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TrackBar2Change(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; s,m:integer; Player: TBassPlayerEx; ChannelA,ChannelB: Tbasschannel; implementation {$R *.dfm} Uses BassTypenU; //<-!!! Var _noAwnChangePos:boolean; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Timer1.Enabled:=False; if Assigned(ChannelA) then ChannelA.Stop; if Assigned(Player) then begin Player.delChannel; Player.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Player := TBassPlayerEx.Create(1,self); ChannelA := Player.addChannel(100); end; procedure TForm1.Button1Click(Sender: TObject); var length,vol:integer; begin if OpenDialog1.Execute then begin ChannelA.LoadFromFile(OpenDialog1.Filename); TrackBar1.Max := ChannelA.SongTimeInfo[SongTimeLength].asMilliSecInteger; length := ChannelA.Lied.SecLaenge; s := length mod 60; m := length div 60; vol := ChannelA.Volume; Label1.Caption := Format('%.2d:%.2d',[m,s]); Label2.Caption := inttostr(vol)+'%'; ChannelA.Play; end; end; procedure TForm1.Timer1Timer(Sender: TObject); var m1,s1:integer; begin if ChannelA.isComplete then begin _noAwnChangePos:=True; TrackBar1.Position := ChannelA.SongTimeInfo[SongTimeUp].asMilliSecInteger; { m1 := ChannelA.SecPosition div 60; s1 := ChannelA.SecPosition mod 60; Label1.Caption := Format('%.2d:%.2d',[m1,s1])+' / '+Format('%.2d:%.2d',[m,s]); } end; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin if _noAwnChangePos then _noAwnChangePos := False else ChannelA.MilliSecPosition := TrackBar1.Position; end; procedure TForm1.TrackBar2Change(Sender: TObject); var vol:integer; begin vol := 100 - TrackBar2.Position; ChannelA.Volume := vol; Label2.Caption := inttostr(vol)+'%'; end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage(inttostr(ChannelA.SongTimeInfo[SongtimeLength].asMilliSecInteger)); end; end. //in der BasschannnelU sollte noch folgendes editiert werden procedure TScanThread.WriteData; begin while (Self=nil) do terminate; //<----!!! weil Thread terminate sonst exit _WaveBufferUpdateEvent(_WaveBufL, _WaveBufR, _Start, _Ende, _Max, _Complete); end; |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Hallo, kann jemand bitte nochmal eine kompatibe Vesersion der Bass.dll uppen?
Das gesamte Internet scheint ältere Versionen als 2.4.x.x vollständig vernichtet zu haben. Wäre toll wen jemand noch so eine rumfliegen hat. :) |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Auf un4seen.com gibts die älteren Versionen noch, hier ein
![]() |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Super! danke dir :) :thumb:
Ich war natürlich so doof und hab überall anders nach der Version gesucht, nur nicht auf der Seite selber. :wall: |
Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
Mhh... komischerweise kann ich die Komponente nicht installieren.
Delphi: 2007 RAD Studio BASS DLL-Version: 2.4.2.1 (Liegt im BIN-Ordner) Fehlermeldung: Der Prozedureinsprungpunkt "BASS_ChannelSlideAttributes" wurde in der "bass.dll" nicht gefunden. Wurde das in der neueren Version von der bass.dll herausgenommen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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-2025 by Thomas Breitkreuz