# FileBrower_giec **Repository Path**: yuanfen1321/FileBrower_giec ## Basic Information - **Project Name**: FileBrower_giec - **Description**: FileBrower_giec - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-03-17 - **Last Updated**: 2024-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README http://blog.csdn.net/wyw594/article/details/44747419 1.android 不支持直接访问局域网的共享文件,所以要用到其它的开源库,来实现文件的访问。 http://jcifs.samba.org/ jcifs 实现smb协议,关于smb协议,可以参考百度。 https://clinkc.svn.sourceforge.net/svnroot/cgupnpjava/trunk/ 实现http服务器 http://commons.apache.org/proper/commons-net/ (或者用apache来实现http服务器 ) 2. jcifs访问到文件后,播放器不能直接播放smb协议的文件,所以中间加了一个转换,将smb协议 获取到得文件流转发给http服务器,然后播放器可以直接播放。在线的简单视频播放主要在于http 206协议的处理,可以做到边下边播。如文件的断点续传、多线程下载等,就是进行了分段的请求, 常用的搜索http响应一般返回200,表示响应完成。206则表示部分响应成功,详细的可以参考http 协议。 3.demo中实现了对于局域网中共享的多媒体文件播放,如果更改了数据源,则可以在浏览器中直接 播放SD卡中的多媒体文件,主要在于数据流的转换。想要过河,就得造桥。 1.1. Android4视频播放器不能直接地支持smb协议..子好先转换成个http流 1.2. ES文件浏览器播放局域网视频的方式也是smb2http 据分析播放器的播放历史记录分析,ES文件浏览器播放局域网视频时 将局域网中 /192.168.1.168/SharedDocs/huantaihu.mp4视频文件的地址转换为标准HTTP数据流格式 "http://127.0.0.1:59767/smb/192.168.1.168/SharedDocs/huantaihu.mp4";; 然后就可以通过intent直接调用本地播放器程序来播放了 Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); strSMBURLPath="http://127.0.0.1:59767/smb/192.168.1.168/SharedDocs/huantaihu.mp4";; intent.setDataAndType(Uri.parse(strSMBURLPath), "video/*"); startActivity(intent); 据反编译ES文件管理器源码,除了用到jcifs.jar的SMB库(SMB相关功能已基本实现),可能还用到apache的HTTP服务器相关内容