最近开发了简易的录音的功能,回顾记录一下。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
private void startRecord() {
mExecutorService.submit(new Runnable() {
@Override
public void run() {
releaseRecorder();
recordOperation();
}
});
}
private void recordOperation() {
mMediaRecorder = new MediaRecorder();
mAudioFile = new File(mFilePath + name + ".m4a");
mAudioFile.getParentFile().mkdirs();
try {
mAudioFile.createNewFile();
//Mic采集
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//格式
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
//采样频率
mMediaRecorder.setAudioSamplingRate(44100);
//编码格式
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//编码频率
mMediaRecorder.setAudioEncodingBitRate(96000);
//保存
mMediaRecorder.setOutputFile(mAudioFile.getAbsolutePath());
mMediaRecorder.prepare();
mMediaRecorder.start();
startTime = System.currentTimeMillis();
Log.i(TAG, "---------------开始录音!!!");
} catch (IOException e) {
e.printStackTrace();
ru.recordFail();
}
}
private void stopRecord() {
mMediaRecorder.stop();
releaseRecorder();
}
private void recordFail() {
mAudioFile = null;
}
/private void releaseRecorder() {
if (null != mMediaRecorder) {
mMediaRecorder.release();
mMediaRecorder = null;
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
private void startPlay(String mFile) {
File file = new File(mFile);
try {
FileInputStream fis = new FileInputStream(file);
mMediaPlayer = new MediaPlayer();
//设置数据
mMediaPlayer.setDataSource(fis.getFD());
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
playEndOrFail(true);
}
});
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
playEndOrFail(true);
return true;
}
});
mMediaPlayer.setVolume(1,1);
mMediaPlayer.setLooping(false);
mMediaPlayer.prepare();
mMediaPlayer.start();
fis.close();
} catch (IOException e) {
e.printStackTrace();
Log.i(TAG,"---------- IOException :" + e.toString());
playEndOrFail(false);
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------