Java Android录音应用程序,录音不需要';不要开始
我是java/Android新手,在使用一个简单的录音应用程序时遇到了麻烦。 我一直在学习本教程,虽然我想我已经学完了,但我的应用程序不起作用。以下是我的.java代码: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;
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"