Ich entschied mich, für Android-Studio zu entwickeln und entwarf eine App, die auf einen Klatsch wartet und dann eine Art von Aktion durchführt. Mein Problem liegt in der Verwendung von TarsosDSP.TarsosDSP Clap Detection
Ich möchte die Listener
Klasse als IntentService
ausführen, damit ich mein Telefon sperren kann und es immer noch hört. Ich habe jedoch Probleme beim Einrichten der AudioDispatcher
und TarsosDSPAudioInputStream
.
Hier ist die onHandleIntent
bisher:
protected void onHandleIntent(Intent Intent) {
AudioDispatcher mDispatcher = new AudioDispatcher(TarsosDSPAudioInputStream, SAMPLE_RATE, BUFFER_OVERLAP);
double threshold = 8;
double sensitivity = 20;
PercussionOnsetDetector mPercussionDetector = new PercussionOnsetDetector(22050, 1024,
new OnsetHandler() {
@Override
public void handleOnset(double time, double salience) {
Log.d(TAG, "Clap detected!");
}
}, sensitivity, threshold);
mDispatcher.addAudioProcessor(mPercussionDetector);
new Thread(mDispatcher).start();
}
ich genauer gesagt denke, ich bin nicht sicher, wie ich das TarsosDSPAudioInputStream
Objekt definieren soll. The documentation sagt, es ist eine Schnittstelle, aber ich weiß nicht, wie das funktioniert. Ich bin super neu in Android Studio und Java, habe aber ein Jahr Erfahrung mit C++, da es Teil meines Hauptfachs ist.
Okay, ich verstehe jetzt. Sie überschreiben also, was passiert, wenn der Perkussionsdetektor das Klatschen erkennt. Dann wird diese Implementierung in den "mDispatcher" und "Thread" wird in der allerletzten Zeile gestartet. Das macht Sinn, danke. Es ist immer ein Schmerz, neue Bibliotheken zu verstehen. – Ausche
Kein Schmerz kein Gewinn :) und zum Glück ist Tarsosdsp eine gut dokumentierte Lib. Danke an die Autoren. – uguboz