Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 Android录音应用程序,录音不需要';不要开始_Java_Android_Android Studio - Fatal编程技术网

Java Android录音应用程序,录音不需要';不要开始

Java Android录音应用程序,录音不需要';不要开始,java,android,android-studio,Java,Android,Android Studio,我是java/Android新手,在使用一个简单的录音应用程序时遇到了麻烦。 我一直在学习本教程,虽然我想我已经学完了,但我的应用程序不起作用。以下是我的.java代码: public class MainActivity extends Activity { private MediaRecorder audioRecorder; private String outFile = null; private Button record, stop, play;

我是java/Android新手,在使用一个简单的录音应用程序时遇到了麻烦。 我一直在学习本教程,虽然我想我已经学完了,但我的应用程序不起作用。以下是我的.java代码:

public class MainActivity extends Activity {

    private MediaRecorder audioRecorder;
    private String outFile = null;
    private Button record, stop, play;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        record = (Button)findViewById(R.id.recordButton);
        stop = (Button)findViewById(R.id.stopButton);
        play = (Button)findViewById(R.id.playButton);

        stop.setEnabled(false);
        play.setEnabled(false);
        outFile = Environment.getExternalStorageDirectory().getAbsolutePath()+"/myRec.3gp";

        audioRecorder = new MediaRecorder();
        audioRecorder.reset();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        audioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
        audioRecorder.setOutputFile(outFile);

    }

    public void record(View view){
        try {
            audioRecorder.prepare();
            audioRecorder.start();
        }
        catch(IllegalStateException ise){
            ise.printStackTrace();
        }
        catch(IOException ioe) {
            ioe.printStackTrace();
        }
        record.setEnabled(false);
        stop.setEnabled(true);
        Toast.makeText(getApplicationContext(), "Recording...", Toast.LENGTH_SHORT).show();
    }

    public void stop(View view){
        audioRecorder.stop();
        audioRecorder.release();
        audioRecorder = null;
        stop.setEnabled(false);
        play.setEnabled(true);
        Toast.makeText(getApplicationContext(), "Recorded successfully.", Toast.LENGTH_SHORT).show();

    }

    public void play(View view) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException{
        MediaPlayer mp = new MediaPlayer();
        mp.setDataSource(outFile);
        mp.prepare();
        mp.start();
        Toast.makeText(getApplicationContext(), "Playing...", Toast.LENGTH_SHORT).show();
    }
}
我已经确保在xml文件中包含用于外部存储和录制音频的正确使用权限

当我运行应用程序时,我没有收到任何警告,但我按下录制按钮,什么也没发生。有谁能帮我看一下我忽略的任何引人注目的东西吗?非常感谢


我正在Android Studio上使用win7,并在摩托罗拉Moto G w/Android 4.4上进行测试。

我用代码回答我自己的问题只是为了完整性,但所有的功劳都归于immibis,他是指导我去那里的人

我只是没有按一下按钮做任何事情。因此,我需要更改xml以在单击时调用这些方法。我将这一行添加到xml中的每个按钮(其中record是方法名)


再次感谢immibis在这方面的帮助。

您是否添加了录制按钮以调用您的
record
方法?@Naveentamakar是的,我抓到了。@immibis我这样做的最佳方式是什么?仅仅通过使用onClick?啊,就是这样!我真是个笨蛋,非常感谢。你有这个Toast.makeText(getApplicationContext(),“Playing…”,Toast.LENGTH\u SHORT.show()吗;
android:onClick="record"