У меня была такая же проблема с фотографиями, но в основном я также думал, что getPhotoPath вернет путь к фотографии, которую я только что сделал.
Поэтому я внимательно прочитал ответ CommonsWare, особенно ту часть, где он объясняет, как работает getVideoPath().
Это связано с тем, что getVideoPath() предназначен для вызова CameraView для создания > имени файла, которое будет использоваться для видео. getVideoFileName(), в свою очередь, используется функцией getVideoPath(). >Это необходимо сделать до начала записи видео.
Насколько я понимаю, getVideoPath() предназначен для использования системой, а не разработчиком. getVideoPath() вызывает getVideoFilename() и getVideoDirectory() для создания пути к видео, который впоследствии будет использоваться системой для сохранения видео.
При этом, что нам нужно сделать (как уже сказал CommonsWare), так это сообщить системе, по какому пути мы хотим сохранить наш файл. И мы делаем это, переопределяя либо getVideoFilename(), либо getVideoDirectory(), либо getVideoPath().
И как только мы это контролируем, мы всегда можем вызвать getVideoPath() после сохранения видео, просто чтобы убедиться, что у нас правильный путь.
Так как я был доволен каталогом по умолчанию, я просто переопределил getPhotoFilename() следующим образом:
public class MyCameraHost extends SimpleCameraHost {
private String photoName;
private String extension = ".png";
public MyCameraHost(Context _ctxt) {
super(_ctxt);
// TODO Auto-generated constructor stub
}
@Override
protected String getPhotoFilename() {
// TODO Auto-generated method stub
return this.photoName + this.extension;
}
public void setPhotoName (String name){
this.photoName = name;
}
}
И в моей работе с камерой мой метод takePhoto() выглядит так:
private void takePicture() {
CameraFragment f = (CameraFragment) getFragmentManager().findFragmentByTag(TAG_CAMERA_FRAGMENT);
if (f != null && f.isVisible()) {
cameraHost.setPhotoName("test");
f.takePicture();
pictureFile = cameraHost.getPhotoPath();
}
}
Надеюсь это поможет. И спасибо CommonWares за эту замечательную библиотеку и ваши ответы на наши вопросы.
person
JDenais
schedule
22.12.2014