代码之家  ›  专栏  ›  技术社区  ›  rob

安卓——麦克风输入电平?

  •  5
  • rob  · 技术社区  · 15 年前

    我想检测一下安卓手机上的麦克风是否被吹入。谷歌没什么帮助。有可能吗?

    1 回复  |  直到 14 年前
        1
  •  7
  •   rob    15 年前

    好啊!我是在网上找到的,所以这似乎是可能的。您似乎可以调用MediaRecorder.GetMaxAmplitude()。

    来自一个名为noisealert的应用程序的代码

    public void start() {
        if (mRecorder == null) {
            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mRecorder.setOutputFile("/dev/null"); 
            mRecorder.prepare();
            mRecorder.start();
            mEMA = 0.0;
        }
    }
    
    public double getAmplitude() {
        if (mRecorder != null)
            return  (mRecorder.getMaxAmplitude()/2700.0);
        else
            return 0;
    }
    

    这里是 source