Android手機通話錄音實現
主要用到了MediaRecorder類,實現代碼如下:
MediaRecorder mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"ivr_record"); if(!dir.exists()){ dir.mkdirs(); } mFileName = new File(dir,"ivr_"+System.currentTimeMillis()+".3gp").getAbsolutePath(); Log.i(TAG, "start recording:"+mFileName); mRecorder.setOutputFile(mFileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); } catch (IOException e) { Log.e(TAG, "prepare() failed"); } mRecorder.start(); </pre>
這種方式只能錄自己的語音,對方的語音錄不到,如果想錄對方的語音,只需要將audio source設置成 MediaRecorder.AudioSource.VOICE_CALL就可以了,代碼如下:
MediaRecorder mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"ivr_record"); if(!dir.exists()){ dir.mkdirs(); } mFileName = new File(dir,"ivr_"+System.currentTimeMillis()+".3gp").getAbsolutePath(); Log.i(TAG, "start recording:"+mFileName); mRecorder.setOutputFile(mFileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); } catch (IOException e) { Log.e(TAG, "prepare() failed"); } mRecorder.start(); </pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!