thisのようなコードを実装しました。ログにノイズ警告が出ますが、外部にどのようなノイズが発生しているかにかかわらず、常に32639
または-32640
と表示されます。Androidのマイクは、新しいデバイスで常に32639または-32640を返します
- サムスンギャラクシーS3(API 19)
- HTCワンM9(API 23)
- サムスン:私は3台の電話機(根ざしているのなし)上でそれをテストしてみた
short[] buffer = new short[minSize]; boolean thresholdMet = false; int threshold = sliderThreshold.getProgress(); ar.read(buffer, 0, minSize); //Iterate through each chunk of amplitude data //Check if amplitude is greater than threshold for (short s : buffer) { if (Math.abs(s) > threshold) { thresholdMet = true; Log.w("NoiseThreshold", String.valueOf(s)); break; } }
Galaxy S7(API 24)
S3では動作しますが、他のプロセッサでは動作しません。 HTCでSensor Senseを使用しようとしましたが、マイクセンサーでは機能しません。しかし、それは以前から使用されていましたが、グラフビューで5秒ごとに1つのサンプルを検出するようです。
奇妙なことに、奇妙なことに、誤動作している電話機での通話やビデオ録音でも、マイクロホンは正常に動作します。
あなたがチェックしましたか? – rupps
@ruppsはい、すべてのデバイスに許可が与えられています – FracturedRetina
haha ok ..まあまあの推測です。 – rupps