# Methodenaufruf bei Signal auf Soundeingang



## mayewski (21. Dez 2010)

Hi,

da mir hier bisher immer wunderbar geholfen wurde, hab ich nochmal ein frage an euch.

Ich möchte, sobald irgendein Ton an meinem Soundeingang ankommt eine Methode xyz starten.
Was das für ein Ton das ist, ist egal. Länge, Lautstärke Frequenz, interessiert alles nicht.

Kann mir da jemand mit Code aushelfen?

Schonmal vielen Dank


----------



## AlexSpritze (22. Dez 2010)

Was hast du denn bisher? Vermutlich die Methode xyz?
Meine Vorgehensweise: ähnlich wie, wenn du von dem Soundeingang aufnehmen wollen würdest, die bytes (in einem anderen Thread) abgreifen und untersuchen, ob sich da nun ein Ton drin verbirgt.
Bei deinem Begriff Ton würde vermutlich wichtig sein, zu schauen, ob eine gewisse Lautstärke überschritten worde.


----------



## mayewski (22. Dez 2010)

Ja, die Methode xyz hab ich.
Das war's dann aber auch schon...

Kann mir jemand sagen, wie bytes abgreifen und untersuchen kann?
Kenn mich mit Sound überhaupt nicht aus.


----------



## AlexSpritze (22. Dez 2010)

Schau mal unter Capturing Audio (The Java™ Tutorials > Sound)
Das scheint mir gut erklärt.

---

Du bekommst da durch read() ein byte-Array, das deine Sounddaten darstellt. Musst natürlich fortlaufend diese Sounddaten auslesen. Die müsstest du irgendwie als Lautstärke interpretieren, kann dir grad aber nicht sagen wie. Wenn du die Lautstärke als Zahl, z.B. dB hast, kannst du ja mit einem Schwellwert (ausprobieren) wann du diesen auslösenden Ton hast.


----------



## mayewski (23. Dez 2010)

Hab es nach dieser Anleitung gemacht und es geht, vielen Dank.

Zur Erklärung, wie ich es mache:

Wenn man es macht, wie im Tutorial, sieht das byte-Array data, wenn kein Ton vorhanden ist, etwas so aus.
[-2, -1, -4, -2, 0, -1,...]

Liegt dann ein Ton an, sieht es etwa so aus
[-235, 60, 12, -77, 0,...]

Somit kann man das sehr leicht unterscheiden.


----------

