这种情况发生

例如

当你想录制电话.

您可以使用开源呼叫记录器.

见this和this

这是一个代码示例

private MediaRecorder recorder = null;

public void onCreate()

{

super.onCreate();

recorder = new MediaRecorder();

Log.i("CallRecorder", "onCreate created MediaRecorder object");

}

public void onStart(Intent intent, int startId) {

if (isRecording) return;

Context c = getApplicationContext();

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(c);

Boolean shouldRecord = prefs.getBoolean(Preferences.PREF_RECORD_CALLS, false);

if (!shouldRecord) {

Log.i("CallRecord", "RecordService::onStartCommand with PREF_RECORD_CALLS false, not recording");

return;

}

int audiosource = Integer.parseInt(prefs.getString(Preferences.PREF_AUDIO_SOURCE, "1"));

int audioformat = Integer.parseInt(prefs.getString(Preferences.PREF_AUDIO_FORMAT, "1"));

recording = makeOutputFile(prefs);

if (recording == null) {

recorder = null;

return; //return 0;

}

Log.i("CallRecorder", "RecordService will config MediaRecorder with audiosource: " + audiosource + " audioformat: " + audioformat);

try {

// These calls will throw exceptions unless you set the

// android.permission.RECORD_AUDIO permission for your app

recorder.reset();

recorder.setAudioSource(audiosource);

recorder.setOutputFormat(audioformat);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

recorder.setOutputFile(recording.getAbsolutePath());

//recorder.setMaxDuration(msDuration); //1000); // 1 seconds

//recorder.setMaxFileSize(bytesMax); //1024*1024); // 1KB

recorder.setOnInfoListener(this);

recorder.setOnErrorListener(this);

try {

recorder.prepare();

} catch (java.io.IOException e) {

Log.e("CallRecorder", "RecordService::onStart() IOException attempting recorder.prepare()\n");

t.show();

recorder = null;

return;

}

Log.d("CallRecorder", "recorder.prepare() returned");

recorder.start();

isRecording = true;

Log.i("CallRecorder", "recorder.start() returned");

updateNotification(true);

} catch (java.lang.Exception e) {

Log.e("CallRecorder", "RecordService::onStart caught unexpected exception", e);

recorder = null;

}

return;

}

更多推荐