音频录制
package com.example.mediarecorder;
import android.media.MediaRecorder;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements MediaRecorder.OnErrorListener {
private MediaRecorder mr;
private boolean prepare=false;
private Button btnRecorder,btnStop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRecorder=findViewById(R.id.button_recorder);
btnStop=findViewById(R.id.button2_stop);
init();
}
private void init() {
mr=new MediaRecorder();
mr.setAudioSource(MediaRecorder.AudioSource.MIC);//设置音源
mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
String path=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+ File.separator+System.currentTimeMillis()+".mp3";
mr.setOutputFile(path);
try {
mr.prepare();
prepare=true;
} catch (IOException e) {
e.printStackTrace();
}
btnStop.setEnabled(false);
}
public void recorderClick(View v){
if (prepare){
prepare=false;
mr.start();
btnStop.setEnabled(true);
btnRecorder.setEnabled(false);
}
}
public void stopClick(View v){
mr.stop();
btnStop.setEnabled(false);
btnRecorder.setEnabled(true);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mr!=null){
mr.release();
}
}
@Override
public void onError(MediaRecorder mr, int what, int extra) {
mr.reset();
}
}
权限设置
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>