我用 ffmpeg 开发了一个应用程序来解码媒体帧。我用解码结果填充了一个 Bitmap 对象,并使用 ImageView.setImageBitmap 来显示位图。在 Android 2.3 中它运行良好,但在 Android 4.0 或更高版本中它不起作用。代码很简单:
imgVedio.setImageBitmap(bitmapCache);//FIXME:in 4.0 it displays nothing
然后我尝试将位图写入文件并重新加载文件以显示。
String fileName = "/mnt/sdcard/myImage/video.jpg";
FileOutputStream b = null;
try
{
b = new FileOutputStream(fileName);
bitmapCache.compress(Bitmap.CompressFormat.JPEG, 100, b);// write data to file
}
catch (FileNotFoundException e)
{
e.printStackTrace();
} finally
{
try
{
if(b != null)
{
b.flush();
b.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
Bitmap bitmap = BitmapFactory.decodeFile(fileName);
imgVedio.setImageBitmap(bitmap);
它可以工作,但是性能太差了。那么有人可以帮我解决问题吗?