使用MediaRecorder录制音频,不能看到我们录制的音频数据,使用AudioRecord可以直接对音频数据进行操作。
AudioRecord
使用AudioRecord的步骤:
1. 获得AudioRecord对象
2. 开始录音
3. 获得音频数据
4. 停止录制
5. 释放资源
public class MainActivity extends Activity {
Button record;
Button stop_record;
AudioRecord audioRecord;
boolean isRecording=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
record=(Button)findViewById(R.id.record);
stop_record=(Button)findViewById(R.id.stop_record);
record.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
doRecord(); //调用录制
}
});
stop_record.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
stopRecord(); //停止录制方法
}
});
}
//新开了一个录制线程,因为直接执行startRecord方法时会将主线程阻塞,导致程序异常。因为线程执行了一个死程序,即不停的读取数据。
public void doRecord() {
// TODO 自动生成的方法存根
Thread audioThread=new Thread(new Runnable() {
@Override
public void run() {
// TODO