我正在尝试捕获24fps的屏幕根视图。我需要一个代码来执行它。我尝试过捕获屏幕的常规方法,但一次捕获24fps会减慢我的应用程序。 是否有任何方法可以这样做,如果是,请给我答案。
答案 0 :(得分:0)
由于此机制不是内置功能,因此您可能无法获得良好的24fps 话虽这么说,你可以尝试下面的内容,看看你得到多少fps:
public class ContinuousScreenshotTask extends AsyncTask<Void, Bitmap, Void> {
View view;
Context context;
Bitmap bitmap;
Canvas canvas;
public ContinuousScreenshotTask(View view) {
this.view = view;
this.context = this.view.getContext().getApplicationContext();
bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
}
@Override
protected Void doInBackground(Void... params) {
while (!isCancelled()) {
view.draw(canvas);
saveBitmap(context, bitmap);
}
return null;
}
@Override
protected void onProgressUpdate(Bitmap... values) {
super.onProgressUpdate(values);
// do something more on the UI thread?
}
}
我设法获得20 fps而不将位图保存到内部存储,并且在启用保存时只有3 fps。
也许你可以分享你的方法,看看它是如何改进的。