Я решил попробовать разработку для студии android и разработал приложение, которое прослушивает хлопок, а затем выполняет какое-то действие. Моя проблема заключается в использовании TarsosDSP.TarsosDSP Clap Detection
Я хочу запустить класс Listener
как IntentService
, поэтому я могу заблокировать свой телефон, и он все равно слушает. Однако у меня возникают проблемы с настройкой AudioDispatcher
и TarsosDSPAudioInputStream
.
Вот onHandleIntent
до сих пор:
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();
}
Я думаю, более конкретно, я не знаю, как я должен определить TarsosDSPAudioInputStream
объект. The documentation говорит, что это интерфейс, но я не знаю, как это работает. Я супер новичок в Android Studio и java, но имею год опыта работы с C++, поскольку это часть моего основного.
Хорошо, теперь я понимаю. Поэтому вы переопределяете то, что происходит, когда детектор перкуссии обнаруживает хлопок. Затем эта реализация помещается в 'mDispatcher', а' Thread' запускается в последней строке. Это имеет смысл, спасибо. Это всегда боль, пытаясь понять новые библиотеки. – Ausche
Без боли нет выгоды :) и, к счастью, tarsosdsp - хорошо документированная библиотека. благодаря авторам. – uguboz