【发布时间】:2019-09-17 20:21:50
【问题描述】:
我想在 ARcore 中渲染一个文件(andy.sfb)。可以从https:// 和file:// 获取此文件。传统上,file:// 分配给 assets 文件夹中的文件,该文件夹与应用程序一起打包。但是,目的是下载 3D 模型,然后从本地设备存储中提供路径 (URI),这可能类似于 /storage/emulated/0/Download/andy.sfb。
SFB 代表 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;
});
【问题讨论】:
-
您可以将 .sfb 文件从服务器下载到本地存储并加载该 .sfb 文件。
-
我现在遇到了问题,我可以成功下载到本地存储但无法检索(加载)文件。 github.com/google-ar/sceneform-android-sdk/issues/528