【发布时间】:2013-10-04 08:28:40
【问题描述】:
在 android 中如何在媒体记录器启动之前显示预览表面。 我的应用程序具有视频录制功能,当我导航到视频录制片段时,它显示黑屏,当我使用开始按钮开始录制时,相机预览显示并开始录制。
如何在录制前开始预览。 我添加了我在片段的 onCreateView() 中使用的代码-
surfaceHolder = mySurfaceView.getHolder();
camera = Camera.open();
if(camera!=null){
camera.setDisplayOrientation(90);
Camera.Parameters param;
param = camera.getParameters();
param.setPreviewFrameRate(20);
param.setPreviewSize(176, 144);
camera.setParameters(param);
camera.setPreviewDisplay(surfaceHolder);
}
mediaRecorder = new MediaRecorder();
camera.unlock();
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile
.get(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setProfile(camcorderProfile_HQ);
String filePath = getOutputMediaFile(MEDIA_TYPE_VIDEO).getPath();
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
mediaRecorder.setOutputFile(filePath);
以及我在点击开始按钮时使用的代码-
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
mediaRecorder.prepare();
mediaRecorder.start();
所以我可以使用上面的代码重新编码视频,但无法在录制开始之前显示预览。 请帮助我在哪里丢失。因为在重新编码视频之前会显示黑屏。
提前致谢。
【问题讨论】:
-
我遇到了同样的问题 - 你如何在不实际录制的情况下显示相机预览?!在用户有机会将相机正确居中之前开始录制是一种糟糕的用户体验。令人印象深刻的是,还没有人回答这个问题。
-
@Cat 你得到答案了吗?
标签: android surfaceview android-mediarecorder