私は、ユーザーが電話をかけて音声ファイルを「中断」すると、オーディオファイルが再生されないようにする簡単なことを書こうとしています。私はSoundMeter
class that this person wroteを使ってマイクのmaxAmplitudeを取得しています。スレッショルドを800
に設定し、マイクロホンの振幅が常に50msごとに戻ることをテストしたいと考えています。Androidのif文が常に実行されていない
何らかの理由で、「割り込み」が表示され、オーディオが停止したときに、何らかの理由でヒットしたり、ミスしたりします。私は、バックグラウンドノイズはありませんが、私は着実に40-50で振幅を見ることができるよ、これを見ながら振幅が800
handler = new Handler();
final Runnable r = new Runnable() {
@Override
public void run() {
mic_amplitude.setText(""+mSoundMeter.getAmplitude());
if(mSoundMeter.getAmplitude() > threshold) {
Log.d("INTERRUPT", "INTERRUPT");
interrupt.setText("Interrupt");
mBackgroundAudio.pause(mp);
audioButton.setText("Resume Audio");
} else {
interrupt.setText("");
}
handler.postDelayed(this, 50);
}
};
handler.postDelayed(r, 50);
上で全体の時間を示すべき割り込みを希望します静かに話すときのピークは1200〜1500です。私は割り込みが800以上の時間に表示されるようにしたいと思いますが、現在は断続的にしか表示されません。
私は50が小さすぎると思いますが、私は知りません – zombie