Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   BassPlayerEx mit erweiterten Soundeffekten... (https://www.delphipraxis.net/65381-bassplayerex-mit-erweiterten-soundeffekten.html)

omata 19. Mär 2006 23:14

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Hallo urbanbruhin,

das was du da geschrieben hast sollte soweit stimmen. Der Channel spielt um die FadeTime weiter und sollte dann auf Stop bzw. Pause gehen. Ich kann nicht so ganz nachvollziehen warum das bei dir nicht geht. Wie du sieht, geht es im Demo wunderbar. Vielleicht kannst du da nochmal reinschauen und dir ein paar Hilfestellungen holen (dafür ist das Demo ja da).

MfG
Thorsten

100nF 24. Mär 2006 21:24

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo omata,

Ich habe mal ein neues Projekt angefangen, um das FadeStop zu testen. hier der ganze code dazu:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BassPlayerExU, basschannelu, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Player : TBassPlayerEx;
  ChannelA : Tbasschannel;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Player:=TBassPlayerEx.Create(1, self);
  ChannelA:=Player.addChannel(100);
end;

procedure TForm1.Button1Click(Sender: TObject); // Play-Button
begin
  if not opendialog1.Execute then exit;
  channela.LoadFromFile(opendialog1.filename);
  channela.Play;
end;

procedure TForm1.Button2Click(Sender: TObject); // Stop-Button
begin
  channela.FadeTime := 2;
  channela.FadeStop := true;
  channela.doFadingOut;
end;

procedure TForm1.Button3Click(Sender: TObject); // Volume-Button
begin
  channela.Volume := 100;
end;

end.
wenn man auf play und dann auf stop klickt, "fadet" die musik aus, bis man sie nicht mehr hört. wenn man aber mit dem Button3 die volume auf 100 stellt, hört man sie wieder, d.h. die musik läuft weiter :gruebel:

im anhang die EXE vom obigen (deutsch??) code. Komisch ist nur, dass das bei deiner Demo nicht so ist...

EDIT:
ich glaube, ich habe den fehler jetzt gefunden. ich habe in der Unit "BassCHannelU" ein bisschen abgeändert, jetzt sieht sie so aus:
Delphi-Quellcode:
procedure TBassChannel.UpdateTime;
var vol, freq: cardinal; // das ist neu
    pan: integer;        // das auch
begin
  _BassDll.BASS_ChannelGetAttributes(_Channel, freq, vol, pan); // und das...
 if _FadeAuto then
    if _BassDll.BASS_ChannelGetPosition(_Channel) < _Start then
      _BassDll.BASS_ChannelSetPosition(_Channel, _Start);

  if _FadeOut and ((vol <= 1) or (Status <> sndPlaying)) then begin // hier habe ich _volume durch vol ersetzt
    if _FadeStop then
      Stop
    else
      Pause;

    _Volume:=_FadeStartVolume;
    _FadeOut:=false;
    if _FadeAuto then
      LoadNextLied;
  end;
  if assigned(_OnUpdateTimeTimer) then
    _OnUpdateTimeTimer(Self);
end;
warum es mit vol funktioniert und mit _volume nicht:
die eigenschaft _volume verändert sich ja nicht während dem fading, und auch nach dem fading nicht. wenn man aber die volume mit BASS_ChannelGetAttributes ermittelt, ist es die volume genau in diesem moment, wenn die prozedur ausgeführt wird.
ich hoffe du verstehst was ich meine...

es wäre gut, wenn du das mal anschauen würdest, und dann auch eine neue version hochladen würdest.

Gruss
urbanbruhin

omata 26. Mär 2006 16:56

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Hallo urbanbruhin,

habe deine Erweiterungen eingebaut und hochgeladen. In meiner Demo ist mir das nicht aufgefallen weil sich dort _Volume auch ändert. Dies wird dort allerdings von aussen gesteuert. Da man das nicht vorraussetzen kann oder sollte, ist dein Tipp sehr sinnvoll.
Vielen Dank für deinen Hinweis und deine Mühe.

MfG
Thorsten

100nF 27. Mär 2006 19:06

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo omata,

also irgendwas stimmt da nicht :gruebel:

hast du noch mehr am code verändert?
jetzt funktionierts nämlich nicht mehr...
wenn man nach dem fadeout die volume auf 100 stellt, läuft die musik weiter.

ich habe mal den code angeschaut, doch ich habe den fehler nicht gefunden.
im anhang ein beispielprojekt (delphi 2005), vielleicht findest du den fehler ja.

gruss
urbanbruhin

omata 27. Mär 2006 19:54

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Hallo urbanbruhin,

du musst auch das TimerUpdate aktivieren...

Delphi-Quellcode:
  Player.TimeUpdateEnable:=true;
dann geht auch dein Beispiel.

MfG
Thorsten

kurtm1 28. Mär 2006 16:24

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Wollte mir das neue Beispiel mal ansehen, um mein Programm eventuell auf diese Version umzustellen, komme aber irgendwie mit dem überhaupt nicht zusammen.

Habs normal entpackt und kompliliert, sowie gestartet.
Das Song laden, etc. klappt ohne Probleme, aber wenn ich das Lied abspielen möchte, beginnt es im Lied sehr zu knistern, so dass es nach nichts mehr klingt. Weiters geht die CPU Auslastung (gemessen mit TaskManager) auf über 30%, RAM-verbrauch fast 20Mb..

Angezeigt (daher direkt vom BassPlayer verbraucht) werden aber nur die 2-2,5% die ja normal sind, also liegts wohl nicht am PlayerModul..

Hab mir jetzt noch die schon kompilierte Datei runtergeladen, selbes Verhalten

omata 29. Mär 2006 18:55

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
Hallo kurtm1,
Zitat:

Zitat von kurtm1
Das Song laden, etc. klappt ohne Probleme, aber wenn ich das Lied abspielen möchte, beginnt es im Lied sehr zu knistern, so dass es nach nichts mehr klingt. Weiters geht die CPU Auslastung (gemessen mit TaskManager) auf über 30%, RAM-verbrauch fast 20Mb..

danke für deine Rückmeldung.
Bei mir bleibt die CPU-Belastung bei 3-4%, deshalb habe ich da nicht weiter drüber nachgedacht. Ich denke mal das dieses Knistern zustande kommt, weil dein Rechner das einfach nicht mehr schafft.
Ich konnte den Code noch etwas optimieren. Bitte probier das jetzt nochmal aus.

Die 20MB kommen durch die Visualisierungen zustande - ich arbeite dran.

MfG
Thorsten

100nF 29. Mär 2006 19:26

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
hallo omata,

mit Player.TimeUpdateEnable:=true; funktionierts jetzt wunderbar!!

thx :bounce1:

gruss
urbanbruhin

kurtm1 30. Mär 2006 07:10

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
@omata: Der Rechner (Laptop) sollte es locker packen, ich kann mir nur vorstellen, dass die SharedMemory Grafikkarte die Probleme macht, bzw. für die neue grüne Visualisierung einfach zu schwach ist..

100nF 2. Apr 2006 20:22

Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
 
hallo omata,

ich habe da noch 2 kleine sachen:

also bei doFadingOut würde ich das mit dem FadeTime*1.5 weglassen, das kann man ja auch selber einstellen über Channel.FadeTime.
gleichzeitig würde ich beim doFadingIn die Volume nicht auf 25, sondern auf 0 stellen. wenn channel.volume grösser als 25 ist, wird aus dem FadeIn ein FadeOut_To_25 :cat:

oder hast du das aus einem bestimmten grund so gemacht?

Gruss
urbanbruhin


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.
Seite 2 von 5     12 34     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