Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wert innerhalb von x Minuten auf y Prozent des Werts senken (https://www.delphipraxis.net/105520-wert-innerhalb-von-x-minuten-auf-y-prozent-des-werts-senken.html)

Aurelius 23. Dez 2007 15:51


Wert innerhalb von x Minuten auf y Prozent des Werts senken
 
Hi DPler :hi:

ich habe bei meinem Player einen Option mit der man die Lautstärke innerhalb von
x Minuten auf y % der aktuellen Lautstärke verringern kann. Das ganze wird in
einem Timer geschehen.

Nur leider habe ich keine Idee wie ich den Algorithmus dafür schreiben soll.

Wie würdet ihr das lösen? (brauche keinen fertigen Code, sondern Ideen. Wenn jemand
allerdings schonmal so was gemacht hat kann er ihn gerne zur Verfügung stellen ^^)

DGL-luke 23. Dez 2007 15:54

Re: Wert innerhalb von x Minuten auf y Prozent des Werts sen
 
da musst du die lautstärke interpolieren über die frames.

und zwar entweder linear (gleichmäißge abnahme), logarithmisch (anfangs starke, dann weniger abnahme) oder exponentiell (zuerst langsame, dann starke abnahme).

algorithmen dazu, die dir aus startwert, endwert, anzahl frames und aktueller frame den aktuellen wert geben, sollte man im internet finden.

dominikkv 23. Dez 2007 15:56

Re: Wert innerhalb von x Minuten auf y Prozent des Werts sen
 
Du benutzt doch die bass.dll?
Dann geht das ganz einfach mit
Delphi-Quellcode:
BASS_ChannelSlideAttributes(Chanel, -1, -2, -101, 1000);
Das wäre zB für eine Sekunde (1000).
Außerdem wird dann automatisch der Stream gestoppt.

Aurelius 23. Dez 2007 16:18

Re: Wert innerhalb von x Minuten auf y Prozent des Werts sen
 
Hm, ich finde keinen Algorithmus dazu.

Ich nutze die BassDllPlayer-Kompo, somit fällt das wohl flach :D

Prototypjack 23. Dez 2007 16:28

Re: Wert innerhalb von x Minuten auf y Prozent des Werts sen
 
Zitat:

Zitat von xX0815Xx
Hm, ich finde keinen Algorithmus dazu.

Ich nutze die BassDllPlayer-Kompo, somit fällt das wohl flach :D

Im Notfall nachrüsten. Ich schätze mal, dass du den Source-Code der Komponente hast? Dann bastle dir eine Methode, die auf diese Funktion zugreift(dürfte nicht allzu schwer sein).

Grüße,
Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz