Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Fr 31.03.06 06:42 
Hi,


kann mir jemand verraten, wie ich einen FadeOut hinbekomme? Also wenn ich meine Wave spiele und einen Button drücke soll das Lied ausfaden also immer leiser werden bis man nichts mehr hört. Als Länge des FadOut habe ich mir 10 sekunden gedacht.

Danke für eure Hilfe

patrick

_________________
Glauben heißt nichts wissen ...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 31.03.06 07:58 
Wenn du zur Wiedegabe die bass.dll benutzt, kannst du das einfach so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
BASS_ChannelSlideAttributes(MainStream, //Handle deines Stückes
-1, // Samplerate beibehalten
-2, // Lautstärke auf 0 runter und anhalten
-101, // Balance beibehalten
FadingInterval // Länge des Fadens (integer)
)

Ansonsten musst du mit Hilfe eines Timers o.Ä. Stück für Stück die Lautstärke runtersetzen.

_________________
We are, we were and will not be.
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Fr 31.03.06 10:47 
Versuche es nun über einen Slider zu machen :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 i: Integer;
begin
I:= Slider1.Position;
i := i -1 ;
Slider1.Position := I;
Wheel1.Position := I;
If Slider1.Position = 0 then
   Timer1.Enabled:= False;
end;


Was mir fehlt, ist wie ich an die Daten der Master Lautstärke komme und wie ich sie am Ende wieder zurück setze.
Habe auch das Beispiel der sissdelphicenter probiert das leider nicht geht.

LG patrick

_________________
Glauben heißt nichts wissen ...
ultra2k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

XP x64
D7 Enterprise
BeitragVerfasst: Fr 31.03.06 12:43 
Also als allererstes: Wofür brauchst "i"???

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Timer1Timer(Sender: TObject);  
begin  
  Slider1.Position := Slider1.Position - 1;
  Wheel1.Position  := Slider1.Position;
  if Slider1.Position = 0 then  
    Timer1.Enabled := False;  
end;

...das tuts genauso denk ich.

Besser wäre vll. noch:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private
  procedure FadeOut;

{...}

procedure TForm1.FadeOut;
begin
  while Slider1.Position > 0 do
  begin
    Slider1.Position := Slider1.Position - 1;
    Wheel1.Position  := Slider1.Position;
    Sleep(20); // Bei Lautstärke 0..100 ca. 2 sekunden Fade
  end;
end;


Weiter wäre es u.U. sinnvoll zu verraten, wie du deine Wave-File abspielst! Wenn dus mit nem TMediaPlayer oder sowas in der Richtung machst, dann hat diese Komponente evtl. schon eine Lautstärkeregelung integriert:

ausblenden Delphi-Quelltext
1:
Player.Volume := 100;					


Denk ma drüber nach :wink:

(PS: Achso und da isn Tipfehler, es heißt "wheel")

_________________
...wenn NULL besonders groß ist, isses schon fast wie ein bisschen EINS!