I have integrated [CWAC-CAMERA][1].I am trying to switch between back and front camera by clicking on the button using the below code but its not working.I can see only the default back camera.Where am I going wrong?
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);
}
}
});
Updated according to CommonsWare answer-
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