在Android的媒体记录器preVIEW显示 [英] preview display in android media recorder

查看:141
本文介绍了在Android的媒体记录器preVIEW显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在机器人如何显示之前媒体录像机开始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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆