# Sound schneller abspielen



## Titanpharao (29. Apr 2011)

Halli Hallo,

bestimmt wurde das Thema hier schon gefragt und ich habe mich durch unzählige Foren durchgewühlt, aber nichts passendes gefunden.

Ganz einfach, in meinem Spiel "zaubere" ich einen Feuerball. Dies benötigt normalerweise 1200ms. Jetzt kann man diese Zeit aber auch verkürzen auf gute 600ms. Wenn ich jetzt meinen "Feuerball" Sound benutze, der 1200ms geht, sollte sich dieser doch an die 600ms anpassen.

Jetzt kann ich schlecht für jede MilliSekunde eine Sound Datei machen . Auch will ich nicht wirklich viel Zeit darin aufwenden, wie man sowas vielleicht programmieren könnte. Es muss dich möglich sein, das es eine Sound API gibt wo man einfach sagt.

sound.setPlaySpeed(2.0) und schon wird es doppelt so schnell abgespielt.

Ich habe bis jetzt JMF benutzt und in einem Forum gefunden das man mit 

```
audioPlayer.setRate(float);
```
die Geschwindkeit bestimmen kann. Clock (JMF 2.1.1e API))

Funktioniert nicht bei meiner wav Datei. Gibts keine andere möglichkeiten? Habe auch was gelesen von Bytes weglassen.

Oder habt ihr andere Ideen wie man sowas lösen kann ...


----------



## s4ke (30. Apr 2011)

Naja, wenn du Bytes weglassen willst, dann müsstest du den Player selbst schreiben, bzw. einen bestehenden umschreiben. Und dann anhand von einer Variable Playspeed ermitteln, welche Tonschnipsel abgespielt werden. So nach dem Motto einmal abspielen, einmal nicht. Aber das ganze halt dann abhängig von einer Variable. Bei doppelter Geschwindigkeit könnte man das einfach mit einem boolean Wert machen der dann einfach alterniert. Ansonsten müsstest du dir was anderes überlegen.


----------



## Ralph-Uwe (2. Mai 2011)

Hallo,

wenn der Sound einmal mit 1200ms und einmal 600ms benötigt wird, ist es am einfachsten zwei
Soundfiles zu verwenden.

Ansonst schließe ich mich meinem Vorredner an.

Gruß


----------



## Titanpharao (2. Mai 2011)

Natürlich ist es prozentual.

Fähigkeit wird gezaubert, mal langsam 1800ms mal schnell 600 mal normal 1200ms ... das ist ganz variable.

Mhh mit den Bytes weglassen :S machen das auch so die Sound-Programme? Gibt ja genügend, wo dies möglich ist und wenn ja  wie geht das ^^


----------



## ice-breaker (3. Mai 2011)

geh das Problem anders:
versuch nicht die Sounds länger/kürzer zu machen sondern zerlege sie, du hast dann ein Feuerball-Casten-Sound der 200ms geht und den du loopest, bis die Aktion fertig ist, kurz vor Ende spielst du dann zusätzlich den Feuerball-Schuss-Sound ab 
Also so in etwa funktioniert das mit den Sounds in World of Warcraft, immer ein "Hintergrundrauschen" welches loopet und somit jede gewünschte Zeit annehmen kann, und dann ein Sound wenn es fertig ist.


----------

