android - 如何在我的应用程序中使用 ScreenCap.cpp?

标签 android screen-capture surfaceflinger

Android 平台有一个用于获取 android 屏幕截图的实用程序类。我将“ScreenCap.cpp”复制到 JNI 文件夹中,然后通过 NDK 构建但失败了。 NDK 编译器没有找到需要的库:

#include <binder/IMemory.h>
#include <gui/SurfaceComposerClient.h>

#include <SkImageEncoder.h>
#include <SkBitmap.h>
#include <SkData.h>
#include <SkStream.h>

错误日志如下:

jni/ScreenCap.cpp:28:28: fatal error: SkImageEncoder.h: No such file or directory

编译终止。

请告诉我如何解决这个问题。

顺便说一句,是否有任何解决方案可以以编程方式捕获整个 android 屏幕?我需要每秒至少捕获 10 次。

谢谢。

最佳答案

您忘记将 SkImageEncoder.h 包含到您的 Local_C_Include 中。将这一行添加到您的 Android.mk 文件中

LOCAL_C_INCLUDES := PATH_TO_SKImageEncoder_HEADER

关于android - 如何在我的应用程序中使用 ScreenCap.cpp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12597917/

相关文章:

java - Android - getActionBar().setDisplayHomeAsUpEnabled() 使应用程序崩溃,仅在法国小屏幕上

c++ - 如何以编程方式(c++)(全屏)捕获 Windows Phone 8.1 的屏幕截图?

android渲染使用CPU而不是GPU?

swift - CGDisplayStream 仅捕获单个帧

c++ - 仅从指定窗口捕获像素数据

安卓 SurfaceFlinger

android - 是否可以绕过Android的surfaceflinger?

Android TableLayout问题: get a fixed-width right column?

android - 使用 Camera 和 getOptimalPreviewSize 扭曲的图片

android - Google Play 预发布报告 - 资源名称