我用的是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传输过程中丢失导致失真

解决方案 »

  1.   

    在用socket传出去之前,存一份下来,看是不是传输前就有这种杂音,再分析传输的数据格式是否对方正确的接收处理了。
      

  2.   

    您好,很久没来,看到楼主关注相同内容,想请教如何在传输做到实时,就像手机端是一个  pc 端的  mic一样,当然延时到耳朵没有感觉就行, pc 与手机在 同一局域网。能分享吗? [email protected]
      

  3.   

    在做类似的项目 能把源码发一份吗 谢谢 [email protected]
      

  4.   

    在做类似的项目 能把源码发一份吗 谢谢 [email protected]
     
     
      

  5.   

    在做类似的项目啊,我的是语音加密传输,可以给我发一份看看么,3q,[email protected]
      

  6.   

    能传一份demo吗?android录音,在局域网中传输给其他设备播放声音[email protected]
      

  7.   

    最近也在弄这方面的东西,能传一份到[email protected]