具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
DLNA媒体网络包括DLNA Media Sever(DLNA媒体服务器)、DLNA Media Controller(DLNA媒体控制器)和DLNA Media Render(DLNA媒体渲染器)。
其中,DLNA媒体服务器用于存放媒体文件,并分析媒体文件,将分析结果告知其他设备,由于DLNA媒体服务器基于UPNP,DLNA媒体服务器能够主动向网络上的其他设备广播其MediaSever身份,因而,该DLNA媒体服务器一旦上线,局域网内其他设备就能发现它。本实施例中,网关在DLNA媒体网络中充当DLNA媒体服务器的角色。
DLNA媒体控制器能够搜集DLNA媒体网络中的所有媒体文件,选择播放或浏览媒体文件,并将选择的媒体文件告知DLNA媒体渲染器。
DLNA媒体渲染器能够从DLNA媒体服务器读取媒体文件,并根据DLNA媒体控制器对媒体文件的控制,选择性地播放媒体文件。
本实施例中,该DLNA媒体控制器和DLNA媒体渲染器可以分别设置不同的设备中,也可以在支持DLNA媒体播放的渲染器。如电视等,集成DLNA媒体控制器,本发明实施例将DLNA媒体控制器和DLNA媒体渲染器看成局域网中的DLNA Media Player(DLNA媒体播放器)。
实施例1
参见图2,本发明实施例提供了一种共享媒体文件的方法,所述方法包括:
步骤101:根据局域网中终端的IP地址查找局域网中的共享文件夹;
步骤102:将查找到的共享文件夹挂接到本地预设的文件夹;
步骤103:对挂接到本地预设的文件夹的共享文件夹进行分析得到分析结果;
步骤104:将分析结果广播给局域网中的所有终端。
本发明实施例提供的方法,通过借助网关的DLNA媒体分享能力和挂接操作,将局域网中本身不具有DLNA分享能力的终端自由分享媒体文件,将终端上的媒体文件共享到局域网的网关,实现媒体文件的共享,使局域网中的其他设备能够通过DLNA播放器访问终端上的媒体文件。
实施例2
参见图3,本发明实施例提供了一种共享媒体文件的方法,所述方法包括:
步骤201:局域网中的终端将欲共享的媒体文件设置共享属性;
其中,局域网中可能会有多种设备,如网关、电视、PC终端等,本实施例中以共享媒体 文件的终端为PC终端为例进行说明,该PC终端可以为支持DLNA Media Server的PC终端,如安装有window7操作系统的PC,此时的网关可以不具有DLNA Media Server功能;另一方面,本实施例中的PC终端也可以为不支持DLNA Media Server的PC终端,此时需要网关具有DLNA Media Server功能,代为做DLNA Media sever。该PC终端的操作系统可以为windows操作系统,也可以为Linux操作系统,网关的操作系统为Linux操作系统。
具体地,若将PC中的媒体文件共享到网关时,需要将PC中的媒体文件所在的文件夹设置共享属性。PC对媒体文件所在的文件夹设置共享属性的方法由用户手动完成。如,本发明实施例中PC的共享文件夹为//192.168.1.5/video,并在网关的mnt目录下创建任意名字的文件夹,假设为“smbShare”。其中,mnt是网关内DLNA功能默认扫描的目录,mnt是mount(挂接)的缩写。
步骤202:网关获取局域网内终端的IP地址;
本实施例中,网关是组建家庭局域网的关键,局域网中的所有终端的IP地址都是由网关分配,因而网关本身就记录了所有终端的IP地址。
对于该步骤,网关通过获取终端的IP地址,在将共享文件夹对应的分析结果广播给局域网中的其他设备时,能够根据该IP地址获知该共享文件夹具体是设置在哪个终端上,从而能够将不同的终端上的共享文件夹区分开来。
步骤203:网关根据获取的终端的IP地址,查找该IP地址对应的共享文件夹;
对于该步骤,本发明实施例中的网关上设有samba共享工具,即网关支持smaba client,网关接收用户输入的smbclient命令,能够查询到网络中每个IP地址下的共享文件夹名。其中,网关接收到用户在shell(计算机术语,一般俗称壳,用来区别于核)中输入的与PC的IP地址相关的一条smbclient命令时,能够根据该命令查看到该PC是否设置了共享文件夹。
用户在shell中输入的命令格式为./smbclient--list=IP地址。如,网关接收到用户在shell中输入如下的命令:./smbclient--list=192.168.1.5时,网关查看IP地址为192.168.1.5的PC是否设置了共享文件夹,此时网关的命令执行结果显示为//192.168.1.5/video,即显示出IP地址为192.168.1.5的PC设置的共享文件夹,网关查看出该PC上设置了共享文件夹video。
其中,samba是Linux和UNIX系统上实现SMB协议的一个工具套件,由服务器及客户端程序构成,samba共享工具能够在Unix上实现SMB(Server Message Block,服务器信息块)协议,同样也适用于Linux协议中。SMB协议通常是被windows系列用来实现 磁盘和打印机共享。Linux也可以通过SMB协议与Windows实现网络共享。
步骤204:网关将查找到的共享文件夹挂接到网关预设的文件夹;
其中,参见图4,网关利用Linux协议的mount命令,将网络中的共享文件夹做为Linux的一个“文件”挂接到Linux网关mnt目录下预设的文件夹,该预设的文件夹为一个空文件夹,挂接操作是指网关将PC上的共享文件夹与网关的空文件夹建立映射关系,从而局域网中的具有DLNA功能的其他终端通过网关可以直接访问该共享文件夹。
本发明实施例中,Linux网关预设的文件夹为/mnt/smbShare,将上述步骤203查找到的共享文件夹//192.168.1.5/video挂接到网关的文件夹/mnt/smbShare下,从而将PC的Windows的共享文件夹和linux下的目录联系起来,因而访问网关的文件夹/mnt/smbShare时,就相当于访问PC的文件夹//192.168.1.5/video了。
其中,网关执行的mount命令具体为:
mount-t cifs-o username=admin,password=admin//192.168.1.5/video
/mnt/smbShare
其中,PC采用不同的文件系统格式时,网关执行的挂接命令中的参数各不相同。下面给出PC采用的文件系统格式为挂接光盘镜像文件、移动硬盘、U盘、Windows网络共享或UNIXNFS(Network File System,网络文件系统)时,挂接命令中的不同参数。
本实施例中,挂接(mount)命令的参数非常多,在此仅介绍本发明应用到的mount命令的参数。
mount[-t vfstype][-o options]device dir
其中:
参数-t vfstype,用于指定文件系统格式的类型,通常也可以不指定。本实施例中,mount会根据文件系统的格式自动选择对应的类型。常用的类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX)文件网络共享:nfs
参数-o options,主要用来描述共享媒体文件的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
参数device,指要挂接的设备。
dir,指设备在系统上的挂接点(mount point)。
本实施例中,Linux Kernel可以使用Common Internet File System(cifs,通用Internet文件系统)代替smbfs。如:
1)网关读取的mount命令为.smbmount//192.88.88.11/www/home/www-ousername=root,password=pw时,与读取到mount命令为:mount.cifs//192.88.88.11/www/home/www-o username=root,password=pw时,网关均能获知挂接的共享媒体文件为Windows文件。
2)网关读取的mount命令为.mount-t smbfs-o username=root,password=pw//192.88.88.11/www/home/www时,与读取到mount命令为:mount-t cifs-ousername=root,password=abctest//192.88.88.11/www/home/www时,网关均能获知挂接的共享媒体文件为Windows文件。
步骤205:网关对挂接在预设的文件夹的共享媒体文件进行分析,得到分析结果。
其中,网关通过对共享媒体文件进行分析得到分析结果,从而网关将分析结果广播给局域网中的其他设备。
本实施例中,网关对挂接在预设的文件夹的共享媒体文件进行分析主要指对挂接在预设的文件夹的共享媒体文件的属性信息进行分析,得到分析结果,并将该分析结果存储在网关的mnt目录。如共享媒体文件为MP3文件时,分析该MP3文件得到的分析结果包括:MP3文件的作者,MP3文件的标题,MP3文件的时长等详细信息。
步骤206:网关将分析结果广播给局域网中的所有终端。
本实施例中,网关具备普通的DLNA Media Server的功能,安装有Linux操作系统的网关本身作为DLNA Media Server,具有扫描分享mnt目录下的分析结果的能力。
其中,网关扫描到挂接在mnt目录下的分析结果时,将该分析结果广播给局域网中的其他终端,从而将PC上的共享媒体文件共享到局域网,实现了DLNA网络中各个终端之间的媒体文件的共享。
另外,当局域网内支持DLNA功能的设备要求播放PC上的共享媒体文件时,会向网关发送一个播放该共享媒体文件的命令,网关收到播放共享媒体文件的命令,根据内置的samba获取共享媒体文件,并将该共享媒体文件发送给该设备,该设备通过媒体播放器播放该共享媒体文件。
具体地,该设备为电视,电视播放PC上的共享媒体文件,且电视上置有DLNA媒体控制器和DLNA媒体渲染器时,电视中的DLNA媒体控制器选择播放该共享媒体文件,并将该共享媒体文件告知DLNA媒体渲染器。电视中的DLNA媒体渲染器从网关读取该共享媒体文件,并根据DLNA媒体控制器对媒体文件的控制,选择性地播放共享媒体文件。
本发明实施例提供的方法,通过借助网关的DLNA媒体分享能力和挂接操作,将局域网中本身不具有DLNA分享能力的PC上的媒体文件共享到局域网的网关,实现局域网内媒体文件的共享,使局域网中的其他设备能访问PC上的媒体文件。另外,即使网关的操作系统与局域网中终端的操作系统不同,在终端共享媒体文件后,其他终端均能访问并播放该共享文件夹。
实施例3
参见图5,本发明实施例提供了一种网关,所述网关包括查找模块301、挂接模块302、分析模块303和广播模块304:
查找模块301,用于根据局域网中终端的IP地址查找局域网中的共享文件夹;
挂接模块302,用于将查找模块302查找到的共享文件夹挂接到本地预设的文件夹;
分析模块303,用于对挂接模块302挂接到本地预设的文件夹的共享文件夹进行分析,以得到分析结果;
广播模块304,用于将分析模块303分析得到的分析结果广播给局域网中的所有终端。
其中,查找模块301具体用于:根据接收的与IP地址相关的smbclient命令,查找到局域网中的共享文件夹。
其中,挂接模块302具体用于:根据自身的挂接命令,将查找到的所述共享文件夹挂接到本地预设的文件夹。
本发明实施例提供的网关,通过借助DLNA媒体分享能力和挂接操作,将局域网中本身不具有DLNA分享能力的终端自由分享媒体文件,将终端上的媒体文件共享到局域网的网关,实现局域网内媒体文件的共享,使局域网内的其他设备能够访问终端上的媒体文件。
实施例4
参见图6,本发明实施例提供了一种共享媒体文件的系统,所述系统包括终端401和网关402;
所述终端401,用于将媒体文件设置为共享文件夹;
所述网关402,用于根据终端的IP地址查找局域网中的共享文件夹,将查找到的所述共享文件夹挂接到本地预设的文件夹,并对挂接到本地预设的文件夹的共享文件夹进行分析,将分析结果广播给局域网中的所有终端。
其中,本发明实施例中的终端可以为PC、移动硬盘、U盘等,网关可以为上述实施例3中记载的任一网关。
本发明实施例提供的系统,通过借助网关的DLNA媒体分享能力和挂接操作,将局域网中本身不具有DLNA分享能力的终端上的媒体文件共享到局域网的网关,实现媒体文件的共享,使局域网内的其他设备能访问终端上的媒体文件。本实施例提供的装置及系统,具体可以与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。