安卓屏幕录像机

3
我想在绘制屏幕内容时记录android截图,并生成视频。我尝试使用“for”循环来实现,但当调用getDrawingCache()方法时出现问题。原则上是可以工作的,但如果在调用“绘制缓存”时更改屏幕上的内容,则android应用会无错误报告地关闭。以下是我的源代码。
public void run() {
        Bitmap screenshot;
        File file;
        FileOutputStream fileOutputStream;

        this.view.setDrawingCacheEnabled(true);

        for (long i = 1; record; i++) {

            screenshot = (Bitmap) Bitmap.createBitmap(view.getDrawingCache());

            file = new File(directory, "frm" + i + ".jpg");

            try {
                fileOutputStream = new FileOutputStream(file);

                screenshot.compress(CompressFormat.JPEG, 10, fileOutputStream);

                fileOutputStream.close();
                ScreenshotRecorder.sleep(50);

            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        this.view.setDrawingCacheEnabled(false);

    }

我一直在寻找其他获取Android屏幕录制的方法,但是我没有找到开源应用程序。如果有人知道如何获取Android屏幕截图的方法,请告诉我,非常感谢。谢谢大家。
(我使用的是Xoom平板电脑和Android 3.0版本)
2个回答

0
我相信在调用get drawing cache之前,你需要先调用view.buildDrawingCache(...),否则将没有可获取的内容。你可以在这里阅读更多关于此的信息

非常感谢,但是我之前已经尝试过了,它不起作用。 - Josmário

0

尝试:

view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.buildDrawingCache(true);

为了避免null图像,请参考我的答案这里


很遗憾,这个不起作用。我尝试将它放入for块中,但应用程序关闭且没有报告任何错误。您知道一些可以在未root的Android Xoom上进行屏幕录制的应用程序吗? - Josmário

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接