【发布时间】:2018-05-03 09:18:58
【问题描述】:
我正在准备一个小型 android 应用程序,用于捕获用户的照片和录音。像用户会用他的相机拍照,然后在查看该照片时添加音频评论。
为了捕捉音频,我使用 MediaRecorder [因为 android 默认录音机将不允许应用在录音完成时显示自定义图像]。当应用程序没有 CAMERA 权限时,MediaRecorder 正在按我的预期工作。用户可以查看自定义屏幕并录制音频。但是,当授予应用程序 MediaRecorder 的 CAMERA 权限时,它会打开本机相机预览,即使我没有为 MediaRecorder 设置视频源。当应用有 CAMERA 权限时,就好像没有摄像头预览就无法录制音频一样。
import static android.Manifest.permission.RECORD_AUDIO;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.Manifest.permission.CAMERA;
mediaRecorder=new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mediaRecorder.setOutputFile(AudioSavePathInDevice);
我继续尝试使用自定义 Surface 创建 1 像素 * 1 像素的相机预览
mCamera = getCameraInstance();
mPreview = new CameraPreview(getApplicationContext(), mCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mPreview);
mediaRecorder.setCamera(mCamera);
mediaRecorder.setPreviewDisplay(mPreview.getHolder().getSurface());
但我的 MI 手机忽略并继续进行完整的相机预览。那么有没有一种简单的方法可以在存在相机权限的情况下使用 MediaRecorder 录制音频而无需启动本机相机?
【问题讨论】:
标签: android audio camera mediarecorder