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
# 1 楼答案
这是不可能的,但有点棘手。您的应用程序必须充当服务器,从samba共享中读取输入流,并将其流式传输到第三方应用程序,如音乐播放器(如果我们谈论的是mp3文件)
您可以在此处找到详细信息:Android ServerSocket programming with jCIFS streaming files
# 2 楼答案
对不起,我想用评论代替回答,但是我没有足够的声誉
我在ES Explore或其他相同的应用程序上发现,他们似乎不仅使用JCIFS,而且还使用nanoHTTPD
他们将nas文件传输到samba文件,然后使用nanoHTTPD作为流式服务器来服务多媒体文件
网上有很多样本,这里有一个讨论=>; How to serve a file on sdcard using NanoHTTPD (inside Android)
希望这能帮助你