首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CWAC相机-切换前向后摄像机不工作

CWAC相机-切换前向后摄像机不工作
EN

Stack Overflow用户
提问于 2015-06-04 14:42:49
回答 1查看 387关注 0票数 0

我已经集成了camera,我试图通过使用下面的代码在前后摄像头之间切换,但是它不能工作,我只能看到默认的back,camera.Where,我出错了吗?

代码语言:javascript
复制
     private boolean isBackCam=true;
     f = new CameraFragment();
        builder=new SimpleCameraHost.Builder(new DemoCameraHost(getApplicationContext()));
f.setHost(builder.useFullBleedPreview(true).build());
         handleSwitchCamera=(ImageButton)findViewById(R.id.handleSwitchCamera);
          handleSwitchCamera.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View view) 
                {


                    if(isBackCam) 
                        {
                            isBackCam=false;
                            builder.useFrontFacingCamera(true);
                        }
                        else
                        {
                            isBackCam=true;
                            builder.useFrontFacingCamera(false);
                        }
                    }
                });

根据CommonsWare的答案更新-

代码语言:javascript
复制
 f = new CameraFragment();
        getFragmentManager().beginTransaction()
                .add(R.id.preview_view, f, TAG_CAMERA_FRAGMENT)
                .commit();
        f2 = new CameraFragment();     
builder=new SimpleCameraHost.Builder(new DemoCameraHost(getApplicationContext()));
        builder2=new SimpleCameraHost.Builder(new DemoCameraHost(getApplicationContext()));
        builder.useFrontFacingCamera(false);
        builder2.useFrontFacingCamera(true);
        f.setHost(builder.useFullBleedPreview(true).build());
        f2.setHost(builder2.useFullBleedPreview(true).build());
handleSwitchCamera.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view) {
            if(isBackCam) {
                Log.e("bhuvnesh","backcam");
                isBackCam=false;


                getFragmentManager().beginTransaction()
                        .replace(R.id.preview_view, f2, TAG_CAMERA_FRAGMENT)
                        .commit();
            }
            else
            {
                Log.e("bhuvnesh","frontcam");
                isBackCam=true;


                getFragmentManager().beginTransaction()
                        .replace(R.id.preview_view, f, TAG_CAMERA_FRAGMENT)
                        .commit();
            }
        }
    });
  [1]: https://github.com/commonsguy/cwac-camera
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 14:52:07

您需要在完全配置setHost()之后调用Builder。您不能只是在稍后更改Builder并期望进行更改。

请注意,setHost()设计为每个片段调用一次。如果你想在相机之间切换,你需要切换片段(每个摄像头一个),就像演示应用程序所做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30646972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档