Android手機通話錄音實現

jopen 9年前發布 | 2K 次閱讀 Java 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!