@bezlepkin/nativescript-ar
Version:
NativeScript Augmented Reality plugin. ARKit on iOS and (with the help of Sceneform) ARCore on Android.
27 lines (26 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FragmentScreenGrab = void 0;
const core_1 = require("@nativescript/core");
class FragmentScreenGrab {
grabScreenshot(fragment) {
return new Promise((resolve, reject) => {
const view = fragment.getArSceneView();
const bitmap = android.graphics.Bitmap.createBitmap(view.getWidth(), view.getHeight(), android.graphics.Bitmap.Config.ARGB_8888);
const handlerThread = new android.os.HandlerThread("PixelCopier");
handlerThread.start();
android.view.PixelCopy.request(view, bitmap, new android.view.PixelCopy.OnPixelCopyFinishedListener({
onPixelCopyFinished: (copyResult) => {
if (copyResult === android.view.PixelCopy.SUCCESS) {
resolve(core_1.ImageSource.fromDataSync(bitmap));
}
else {
reject("Field to copy screen image");
}
handlerThread.quitSafely();
}
}), new android.os.Handler(handlerThread.getLooper()));
});
}
}
exports.FragmentScreenGrab = FragmentScreenGrab;