Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用getMaxAmplication返回0_Java_Android - Fatal编程技术网

Java 调用getMaxAmplication返回0

Java 调用getMaxAmplication返回0,java,android,Java,Android,我正在创建一个项目,我必须找到录制声音的响度 无论我调用多少次getMaxAmplication()它总是显示0,通过写入AmplicatedB它总是显示-无穷大 请帮助我,谢谢 这是我的密码 record1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { record[0] = new MediaRecorder(); record[0].set

我正在创建一个项目,我必须找到录制声音的响度

无论我调用多少次
getMaxAmplication()
它总是显示0,通过写入
AmplicatedB
它总是显示-无穷大

请帮助我,谢谢

这是我的密码

record1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        record[0] = new MediaRecorder();
        record[0].setAudioSource(MediaRecorder.AudioSource.MIC);
        record[0].getMaxAmplitude();
        record[0].setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        record[0].setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        record[0].setOutputFile(FilePath);

        try {
            record[0].prepare();
            record[0].getMaxAmplitude();
        } catch(IOException e) {
            e.printStackTrace();
        }
        try {
            record[0].start();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

});

stop.setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View v) {
        try {
            record[0].stop();
        }

        catch(Exception e) {
            e.printStackTrace();
        }
        try {
            int amp = record[0].getMaxAmplitude();
            //String ampl = amp.toString();
            int x = 1;
            System.out.println("amp: " + amp);
            System.out.println("hello");
            //double amplitudeDb = 20 * Math.log10((double) Math.abs(amp));
            ampli.setText("" + amp);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        try {
            record[0].release();
        }
        catch(Exception e) {
            e.printStackTrace();
        }

    }

});

最后,我理解了GetMaxAmplium()的逻辑。我必须在记录[0]之前写入记录[0]。GetMaxAmplium()。停止()


然后一切都会好起来:)

最后我理解了GetMaxAmplium()的逻辑,我必须在记录[0]之前写入记录[0]。GetMaxAmplium()。停止()

那么一切都会好起来的:)