【问题标题】:How to import SFB file in runtime from local storage?如何在运行时从本地存储导入 SFB 文件?
【发布时间】:2019-09-17 20:21:50
【问题描述】:

我想在 ARcore 中渲染一个文件(andy.sfb)。可以从https://file:// 获取此文件。传统上,file:// 分配给 assets 文件夹中的文件,该文件夹与应用程序一起打包。但是,目的是下载 3D 模型,然后从本地设备存储中提供路径 (URI),这可能类似于 /storage/emulated/0/Download/andy.sfbSFB 代表 SceneForm 二进制文件。

我的挑战是从本地设备存储中渲染模型运行时。 该问题在detail

中提出
  File file = new File("file:///storage/emulated/0/Download/andy.sfb");
            Callable callable = () -> {
            InputStream inputStream = new FileInputStream(file);
            return inputStream;
        };
        FutureTask task = new FutureTask<>(callable);
        new Thread(task).start();

        ModelRenderable.builder()
            .setSource(this, callable)
                .build()
                .thenAccept(renderable -> andyRenderable = renderable)
                .exceptionally(
                        throwable -> {
                            Toast toast =
                                    Toast.makeText(this, "Unable to load andy renderable", Toast.LENGTH_LONG);
                            toast.setGravity(Gravity.CENTER, 0, 0);
                            toast.show();
                            return null;
                        });

【问题讨论】:

标签: local arcore sceneform


【解决方案1】:

您可以将 .sfb 文件从服务器下载到本地存储并加载该 .sfb 文件。 要从本地存储加载对象,请使用以下代码:

ModelRenderable.builder()
            .setSource(this, Uri.fromFile(new File(path + fileName)))
            .build()
            .thenAccept(renderable -> {
                andyRenderable = renderable;
            })
            .exceptionally(
                    throwable -> {
                        Toast toast =
                              Toast.makeText(this, "Unable to load andy renderable", Toast.LENGTH_LONG);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                        return null;
                    });

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2017-11-19
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 2019-10-19
    • 2020-09-21
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多