![]() |
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 |
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:
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:
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. 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:
warum es mit vol funktioniert und mit _volume nicht:
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; 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 |
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 |
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 |
Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
Hallo urbanbruhin,
du musst auch das TimerUpdate aktivieren...
Delphi-Quellcode:
dann geht auch dein Beispiel.
Player.TimeUpdateEnable:=true;
MfG Thorsten |
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 |
Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
Hallo kurtm1,
Zitat:
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 |
Re: BassPlayerEx mit erweiterten Soundeffekten (eine Soundka
hallo omata,
mit Player.TimeUpdateEnable:=true; funktionierts jetzt wunderbar!! thx :bounce1: gruss urbanbruhin |
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..
|
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. |
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