Я не могу записать звук обеих сторон в Android.только одна сторона аудио записывается с использованием приведенного ниже кода.возможна ли запись звука с обеих сторон в Android?
открытый класс CallRecordingService расширяет службу {
private MediaPlayer mPlayer = null;
private MediaRecorder mRecorder = null;
private static final String LOG_TAG = CallRecordingService.class.getSimpleName();
private String savingPath;
boolean isRecordStarted = false;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
savingPath = intent.getStringExtra("OUTPUT_PATH");
AppApplication.getInstance().saveIntoPrefs(MConstants.RECORDING_FILE_PATH, savingPath);
startRecording();
return START_NOT_STICKY;
}
// this process must be done prior to the start of recording
private void resetRecorder() {
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setAudioEncodingBitRate(48000);
} else {
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setAudioEncodingBitRate(64000);
}
mRecorder.setAudioSamplingRate(8000);
mRecorder.setOutputFile(savingPath);
try {
mRecorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private void startRecording() {
if (mRecorder != null) {
mRecorder.stop();
mRecorder.release();
}
mRecorder = new MediaRecorder();
resetRecorder();
try {
// Sometimes prepare takes some time to complete
Thread.sleep(2000);
if (!isRecordStarted) {
mRecorder.start();
isRecordStarted = true;
} else if (isRecordStarted) {
isRecordStarted = false;
stopRecording();
}
} catch (InterruptedException | IllegalStateException e) {
e.printStackTrace();
}
}
public void stopRecording() {
if (mRecorder != null) {
mRecorder.stop();
mRecorder.reset();
mRecorder.release();
mRecorder = null;
}
}
}
Я застрял, чтобы реализовать эту функцию записи в моем приложении.Если кто-либо выполнил такую реализацию, то, пожалуйста, исправьте мою ошибку.