私はアンドロイドスタジオの開発を試してみることにしました。そして、拍手を聞いて何らかのアクションを実行するアプリをデザインしました。私の問題は、TarsosDSPの使用にあります。TarsosDSPクラップ検出
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スタジオとJavaのスーパーですが、それは私の専攻の一部としてC + +の1年間の経験があります。
私は今理解しています。パーカッション・ディテクタが拍手を検出したときに何が起こるかを上書きします。この実装は 'mDispatcher'に入れられ、' Thread'は最後の行で開始されます。これは理にかなっています、ありがとう。新しいライブラリを理解しようとすると、常に苦労します。 – Ausche
痛みはありません:)そして幸いにも、tarsosdspはよく書かれたlibです。著者のおかげで – uguboz