我想在ARcore中渲染文件(andy.sfb)。可以从https://
和file://
获取此文件。传统上,将file://分配给资产文件夹中的文件,该文件夹与应用程序打包在一起。但是,目的是下载3D模型,然后从本地设备存储中给出路径( URI ),这可能类似于/storage/emulated/0/Download/andy.sfb
。
SFB 代表SceneForm Binary。
我的挑战一直是从本地设备存储中呈现模型运行时。 问题在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;
});
答案 0 :(得分:0)
您可以将.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;
});