有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何像ES file Explorer那样使用JCIFS打开网络存储的文件?

我正在开发一个安卓应用程序,实际上我可以获得我所有文件的列表,但无法使用URL从列表中打开文件,我也尝试从InputStream打开,但这不起作用

我想做的是像ES File Explorer一样,我知道他们使用JCIFS库,当你打开一个文件(例如MP3)时,他们会制作一个带有socket的隧道,读取文件并以HTTP格式将其传递给propper应用程序

例如:

如果我的nas文件路径为:

smb://My_IP_Address/SharedFolder/Media/MyMusic.mp3

ES文件资源管理器发送如下URL:

http:// 127.0.0.1:59777/smb%2FMy_IP_Address%2FSharedFolder%2FMedia%2FMyMusic.mp3

共 (2) 个答案

  1. # 1 楼答案

    这是不可能的,但有点棘手。您的应用程序必须充当服务器,从samba共享中读取输入流,并将其流式传输到第三方应用程序,如音乐播放器(如果我们谈论的是mp3文件)

    您可以在此处找到详细信息:Android ServerSocket programming with jCIFS streaming files

  2. # 2 楼答案

    对不起,我想用评论代替回答,但是我没有足够的声誉

    我在ES Explore或其他相同的应用程序上发现,他们似乎不仅使用JCIFS,而且还使用nanoHTTPD

    他们将nas文件传输到samba文件,然后使用nanoHTTPD作为流式服务器来服务多媒体文件

    网上有很多样本,这里有一个讨论=>; How to serve a file on sdcard using NanoHTTPD (inside Android)

    希望这能帮助你