我用的是MediaRecorder
下面是我写的部分代码 private void record(){
if(!Global.hasSdcard()){//SDCARD卡没有正确装载
Toast toast=Toast.makeText(this, R.string.Recorder_not_sdcard, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
}
else{
try {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
// mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mAudioFile=Global.createFile();
mediaRecorder.setOutputFile(mAudioFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
mCurDate=new Date();
mRecordTimer=new Timer(RECORDNAME);
mRecordTT=new UploadTask();
mViewTimer=new Timer(VIEWNAME);
mViewTT=new ViewTask();
mRecordTimer.schedule(mRecordTT, mCurDate, 180000);//每3分钟
mViewTimer.schedule(mViewTT, mCurDate, 1000);//每秒都刷新控件
showMsg=R.string.Recorder_start_toast;
toast(showMsg);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
setTitle(e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
setTitle(e.getMessage());
}
}
}这个有可能是你录音的时候有嘈杂声,或者录音设备有问题
2.也有可能录音文件在http传输过程中丢失导致失真
下面是我写的部分代码 private void record(){
if(!Global.hasSdcard()){//SDCARD卡没有正确装载
Toast toast=Toast.makeText(this, R.string.Recorder_not_sdcard, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
}
else{
try {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
// mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mAudioFile=Global.createFile();
mediaRecorder.setOutputFile(mAudioFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
mCurDate=new Date();
mRecordTimer=new Timer(RECORDNAME);
mRecordTT=new UploadTask();
mViewTimer=new Timer(VIEWNAME);
mViewTT=new ViewTask();
mRecordTimer.schedule(mRecordTT, mCurDate, 180000);//每3分钟
mViewTimer.schedule(mViewTT, mCurDate, 1000);//每秒都刷新控件
showMsg=R.string.Recorder_start_toast;
toast(showMsg);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
setTitle(e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
setTitle(e.getMessage());
}
}
}这个有可能是你录音的时候有嘈杂声,或者录音设备有问题
2.也有可能录音文件在http传输过程中丢失导致失真
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货