Не уверен, что я делаю неправильно точно, но получаю эту ошибку при попытке сохранить растровое изображение в PNG файла:java.io.FileNotFoundException: открыть не удалось: ENOENT (Нет такого файла или каталога)
java.io.FileNotFoundException: /storage/emulated/0/storage/emulated/0/Pictures/HelloCamera/VID_20150806_124818.png: не не удалось открыть: ENOENT (нет такого файла или каталога)
private File getVideoThumb(String mediaPath, Uri videoUri) {
Bitmap bmThumbnail;
bmThumbnail = ThumbnailUtils.createVideoThumbnail(mediaPath, MediaStore.Video.Thumbnails.MINI_KIND);
File fPath = Environment.getExternalStorageDirectory();
String[] tokens = mediaPath.split("\\.(?=[^\\.]+$)");
File f = null;
f = new File(fPath, tokens[0] + ".png");
FileOutputStream out = null;
try {
out = new FileOutputStream(f);
bmThumbnail.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
// PNG is a lossless format, the compression factor (100) is ignored
} catch (Exception e) {
Log.d(Constants.DEBUG, "ERROR saving the compressed bitmap " + e);
e.printStackTrace();
} finally {
try {
if (out != null) {
out.flush();
out.close();
}
} catch (IOException e) {
Log.d(Constants.DEBUG, "ERROR closing out stream for file for bitmap");
e.printStackTrace();
}
}
return f;
}
ошибка, кажется, указана bein г повтор в каталоге /storage/emulated/0/
Как вынуть вторую из этого ... что регулярное выражение я попытался это:
int index = mediaPath.lastIndexOf("\\");
String fileName = mediaPath.substring(index + 1);
String[] tokens = fileName.split("\\.(?=[^\\.]+$)");
Я думаю «/ хранение/emulated/0/storage/emulated/0/"должно быть"/storage/emulated/0/"? Ваша операция разделения не работает должным образом. – fhissen
Может быть, вы можете дать нам одно примерное значение 'mediapath'? – MrT
fhissen Я вижу, что это ошибка, как я могу просто извлечь из медиа-пути это /storage/emulated/0/Pictures/HelloCamera/VID_20150806_131011.mp4 тогда только эта часть VID_20150806_131011 – Lion789