Я пытаюсь записать экран мобильного Android, используя Mediaprojection
и Media Recorder
.Я могу записать экран вместе со звуком с помощью микрофона.Ниже мой код.
private void initRecorder() {
try {
File backupPath = Environment.getExternalStorageDirectory();
backupPath = new File(backupPath.getPath()+"/VideoRecording");
if (!backupPath.exists()) {
backupPath.mkdirs();
}
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setOutputFile(backupPath.getPath() + getFormattedDate()+".mp4");
mMediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setVideoEncodingBitRate(1500 * 1500);
mMediaRecorder.setVideoFrameRate(30);
int rotation = getWindowManager().getDefaultDisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation + 90);
mMediaRecorder.setOrientationHint(orientation);
mMediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
}
Мои запросы:
Как записывать только аудио результаты с мобильного телефона.Если я записываю через микрофон, окружающий шум также записывается.Мне нужно пропустить внешний шум и записывать только звук с мобильного телефона.
Размер записанного видео соответствует разрешению экрана мобильного устройства.Как записать экран с разным соотношением сторон, например, 16: 9?