我在使用Nexus 5和Android 5.0.1时遇到了奇怪的问题。我有一个相机应用程序,它有捕获按钮,从SurfacePreview捕获帧并将其保存到文件:
public void takePicture(final Context context) {
PictureCallback pictureCallback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = StorageUtils.getOutputMediaFile(context, mIsForeside, null);
if (pictureFile == null) {
return;
}
InputStream is = new ByteArrayInputStream(data);
Bitmap bmp = BitmapFactory.decodeStream(is);
FileOutputStream out = null;
try {
out = new FileOutputStream(pictureFile);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (Exception e) {
} finally {
try {
out.close();
} catch (Throwable ignore) {
}
}
mOnPictureTakenListener.OnPictureTaken(pictureFile.getAbsolutePath());
}
};
mCamera.takePicture(null, null, pictureCallback);
}
此代码适用于运行Android 4.4的Nexus 5,但在使用Android 5.0.1的Nexus上,我看到以下工件:
有谁知道这个问题?
答案 0 :(得分:1)
您是否尝试将数据字节数组保存为JPEG文件,而不进行位图转换?
自Android 5以来,谷歌推出了新的相机API。可能你应该尝试使用它吗?