Delphi-PRAXiS
Seite 30 von 34   « Erste     20282930 3132     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Komponente] Bass Player Komponente: TBassDLLPlayer (+Demos) (https://www.delphipraxis.net/46916-%5Bkomponente%5D-bass-player-komponente-tbassdllplayer-demos.html)

busybyte 2. Apr 2008 22:54

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:
if (channelA=Nil)then exit;
oder so ähnlich absichern.
Delphi-Quellcode:
Len:=channelA.GetSongTimeInfo(SongTimeLength);
//bzw.
TrackBarPosition.Max := ChannelA.SongTimeInfo[SongTimeLength].asMilliSecInteger;
wo kommt denn das .Lied. her?
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:
  ChannelA.LoadFromFile(OpenDialog1.Filename);
  TrackBar1.Max := ChannelA.Lied.SecLaenge;         //<-- ?????
  ChannelA.Lied.create(OpenDialog1.Filename);
und zum Schluß die Katastrophe,geht gar nicht !!!

Delphi-Quellcode:
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;            //<- !
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
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;;

PatrickB 3. Apr 2008 16:16

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
Wenn ich versuche es so einzufügen:

Delphi-Quellcode:
TrackBar1.Max := ChannelA.SongTimeInfo(SongTimeLength);
Dann wird bei mir SongTimeLength immer rot unterkringelt :/

Es steht dann dort:
Zitat:

[Fehler] Unit1.pas(61): E2029 '[' erwartet, aber '(' gefunden
Wenn ich es zu einer runden Klammer ändere steht dort:
Zitat:

[Fehler] Unit1.pas(61): E2003 Undefinierter Bezeichner: 'SongTimeLength'
Helft mir bitte :pale:

busybyte 3. Apr 2008 17:03

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
//edit gelöscht

PatrickB 3. Apr 2008 20:32

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
Ahja, danke =)
Jetzt wirds zwar immer noch rot unterkringelt aber es steht dort:

Zitat:

[Fehler] Unit1.pas(61): E2361 Auf private-Symbol TBassChannel.GetSongTimeInfo kann nicht zugegriffen werden
Und nun? Bin dir echt dankbar für deine Hilfe! :-D

busybyte 3. Apr 2008 20:56

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
//edit gelöscht

busybyte 3. Apr 2008 22:59

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
Delphi-Quellcode:
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;
Viel Spass !!!

Xen 5. Okt 2008 18:12

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. :)

Fussball-Robby 5. Okt 2008 18:51

Re: [Komponente] Bass Player Komponente: TBassDLLPlayer (+De
 
Auf un4seen.com gibts die älteren Versionen noch, hier ein Link zur Version 2.3. Wenn ich mich richtig erinnere, habe ich, nachdem die neueste Version nicht kompatibel war, diese Version benutzt...

Xen 5. Okt 2008 21:58

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:

Micha88 7. Okt 2008 12:18

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.
Seite 30 von 34   « Erste     20282930 3132     Letzte »    

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