Android录制应用,录制无法开始

时间:2014-11-08 07:19:34

标签: java android android-studio

我是java / Android的新手,并且在使用简单的录制应用时遇到了麻烦。 我一直在关注这个教程here,虽然我认为我在最后,我的应用程序无效。这是我的.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上进行测试。

1 个答案:

答案 0 :(得分:0)

我正在用代码回答我自己的问题只是为了完整性,但所有的归功于那些指导我的那个人。

我根本没有设置按钮在点击时做任何事情。所以我需要更改我的xml以在点击时调用方法。我将此行添加到xml中的每个按钮(其中record是方法名称)。

android:onClick="record"

再次感谢immibis提供的帮助。