2016-04-30 34 views

Antwort

0

Aufnahme Während ich mit dem Java-Sound-API nicht allzu vertraut bin, eine schnelle Google-Suche von Java Die Sound-API bietet viele Informationen und Code-Snippets.

Sie so etwas wie this

Um die Aufnahme zu starten oder zu stoppen, basierend auf Lautstärke nutzen könnten, könnten Sie die GetLevel() -Methode auf dem Dataline-Objekt als Bedingung vor line.Start() aufrufen und line.stop() - Methoden, um die aktuelle Lautstärke von Ihrem Mikrofon zu überprüfen.

d.h.

if(line.getLevel() < 0.3){ 
    line.stop(); 

description of getLevel() method from javadocs Ermittelt den aktuellen Lautstärkepegel für die Linie. Dieser Pegel ist ein Maß für die aktuelle Amplitude des Signals. Der Bereich liegt zwischen 0,0 (Stille) und 1,0 (maximal mögliche Amplitude für die Schallwellenform). Die Einheiten messen lineare Amplitude, nicht Dezibel.

+0

* "Um die Aufzeichnung basierend auf dem Lautstärkepegel zu starten oder zu stoppen, könnten Sie die getLevel() - Methode für das DataLine-Objekt aufrufen" * Das würde nichts nützen. Es ist die "Lautstärke", auf die die Leitung eingestellt ist und sich nicht ändert (es sei denn, der Endbenutzer oder eine App ändert sie). Um den Pegel des tatsächlichen Sounds zu erhalten, ist es notwendig, eine RMS- oder dB-Berechnung für die Daten durchzuführen. –