I'm using Xamarin camera2basic.
my project save photo on same name ( override on one image ).
I set new filename for that but it override on first picture.
here is parts of my code:
public override void OnActivityCreated(Bundle savedInstanceState)
{
base.OnActivityCreated(savedInstanceState);
mFile = getOutputMediaFile();
mCaptureCallback = new CameraCaptureListener(this);
mOnImageAvailableListener = new ImageAvailableListener(this, mFile);
}
public void OnClick(View v)
{
//button Take photo code :
if (v.Id == Resource.Id.picture)
{
TakePicture();
mFile = getOutputMediaFile();
}
}
private File getOutputMediaFile()
{
File mediaStorageDir = new File(Activity.GetExternalFilesDir(null), "Pictures");
if (!mediaStorageDir.Exists())
{
if (!mediaStorageDir.Mkdirs())
{
Log.Debug("Pictures", "failed to create Dir");
return null;
}
}
File mediaFile= new File(mediaStorageDir.Path, "pic.jpg");
int counter = 1;
while (mediaFile.Exists())
{
mediaFile = new File(mediaStorageDir.Path, "pic" + counter.ToString() + ".jpg");
counter++;
}
return mediaFile;
}
first time : When I take a picture it's work correctly and show message : saved image path/pic.jpg
second time : When I take picture it show message : saved image path/pic1.jpg , but pic1.jpg not created and image saved on pic.jpg
I use visual studio debugging in getOutputMediaFile() mFile = pic1.jpg but in ImageAvailableListener() mFile = pic.jpg
public ImageAvailableListener(Camera2BasicFragment fragment, File file)
{
if (fragment == null)
throw new System.ArgumentNullException("fragment");
if (file == null)
throw new System.ArgumentNullException("file");
owner = fragment;
this.file = file;
}
how ca I fix it for taking several picture?