在Android的媒体记录器preVIEW显示 [英] preview display in android media recorder
问题描述
在机器人如何显示之前媒体录像机开始preVIEW表面。
我的应用程序具有视频录制功能,当我浏览到录像片段显示它黑屏,当我开始使用启动按钮,相机preVIEW是显示和记录开始录像。
如何在录制前启动preVIEW。
我增加了code,我在片段onCreateView()使用 -
surfaceHolder = mySurfaceView.getHolder();
相机= Camera.open();
如果(相机!= NULL){
camera.setDisplayOrientation(90);
Camera.Parameters参数;
参数= camera.getParameters();
param.set previewFrameRate(20);
param.set previewSize(176,144);
camera.setParameters(参数);
camera.set previewDisplay(surfaceHolder);
}mediaRecorder =新MediaRecorder();
camera.unlock();
mediaRecorder.setCamera(摄像头);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile
获得(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setProfile(camcorderProfile_HQ);
串文件路径= getOutputMediaFile(MEDIA_TYPE_VIDEO).getPath();
了fileURI = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
mediaRecorder.setOutputFile(文件路径);
和code,我开始按钮点击使用 -
mediaRecorder.set previewDisplay(surfaceHolder.getSurface());
mediaRecorder prepare()。
mediaRecorder.start();
让我能够通过使用上述code重新code视频,但不能录制开始之前显示preVIEW。
请帮我我在哪里missing.for黑色屏幕被重新编码视频前显示。
先谢谢了。
公共无效surfaceCreated(SurfaceHolder持有人){
如果(mCamera!= NULL){
参数PARAMS = mCamera.getParameters();
mCamera.setParameters(PARAMS);
尝试{
//mCamera.setDisplayOrientation(90);
mCamera.set previewDisplay(支架);
}赶上(IOException异常五){
e.printStackTrace();
}
mCamera.start preVIEW();
}
}
如果您实现SurfaceHolder.Callback,覆盖surfaceCreated方法是这样的。这为我工作。
In android how to show preview surface before media recorder start. my app have video recording functionality,when i navigate to video recording fragment it display black screen,when i start recording using start button camera preview is display and recording start.
how to start preview before recording. i have added code that i used in onCreateView() of fragment-
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);
and the code that i used on start button click-
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
mediaRecorder.prepare();
mediaRecorder.start();
so i am able to recode video by using above code,but not able to show preview before recording start. Please help me where i am missing.for that black screen is displayed before recoding video.
Thanks in advance.
public void surfaceCreated(SurfaceHolder holder) {
if (mCamera != null) {
Parameters params = mCamera.getParameters();
mCamera.setParameters(params);
try {
//mCamera.setDisplayOrientation(90);
mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
}
}
If you implement SurfaceHolder.Callback, override the surfaceCreated method like this. This worked for me.
这篇关于在Android的媒体记录器preVIEW显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!