DLNA

DLNA

英文名:Digital Living Network Allicence

功能:终端互联解决方案

口号:Enjory you music , photos and videos anywhere anytime.

功能模块:DMS(Server) DMR(Renderer) DMC(Controller) DMP(Player)


UPNP

英文名:Universal Plug and Play

工作过程

UPnP在控制指针和被控制设备之间提供通讯功能。而网络介质、TCP/IP协议、HTTP仅提供基本的连接和IP地址分配。整个工作过程需要处理六个方面的内容,即设备寻址、发现设备、对设备的描述、设备控制、设备事件、设备表达。

设备寻址:

地址是整个UPnP系统工作的基础条件,每个设备都应当是DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)的客户。当设备首次与网络建立连接后,利用DHCP服务,使设备得到一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的。当局域网内没有提供DHCP服务时,UPnP设备将按照Auto-IP的协议,从169.254/169.16地址范围获取一个局域网内唯一的IP地址。设备还能使用昵称(friendly name),这就需要域名解析服务(DNS)来解决。

发现设备:

可分成两种情况,一种是在有控制请求之后,在当前的网络中查找有无对应的可用设备;另一种情况是某一设备接入网络、取得IP地址之后,就开始向网络“广播”自己已经进入网络,即寻找控制请求。

设备的描述:

简单说,这是声明“自己”是什么样的设备,例如名称、制造厂商、序列号码等等。刚开始“发现”设备后,控制指针对这个设备的“了解”还很少,需要依据URL找到该设备的描述文件,从这些文件中读取更多的描述信息。描述信息的范围很广,一般都是由设备的制造厂商提供的。主要的描述项目有:控制的模式名称和模式号码、设备序列号、制造厂商名称、厂商的WEB的URL……等等。这些一般都存放在特定的XML文件中。

设备控制:

控制指针找到设备描述之后,会从描述中“提炼”出要进行的操作并获悉所有的服务;对每个UPnP设备来说,这些描述必须是很确切、很详细的,描述中可能包含有命令或行为列表、服务响应信息、用到的参数等等。对于服务的每个行为,也伴有描述信息:主要是整个服务进行期间的变量、变量的数据类型、可用的取值范围和事件的特征。
要控制某个设备,控制点必须先发送一个控制行为请求,要求设备开始服务,然后再按设备的URL发送相应的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服务会返回响应信息,指出服务是成功或是失败。

设备事件:

在服务进行的整个时间内,只要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,系统将修改上述提到的事件列表的内容。随之,事件服务器把事件向整个网络进行广播。另一方面,控制点也可以事先向事件服务器订阅事件信息,保证将该控制点感兴趣的事件及时准确地传送过来。
广播或订阅事件,传送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA
设备投入工作之前的准备―――初始化过程,也是一个事件,初始化需要的各种信息也是用事件消息传送的。包括的内容主要是:变量初始值,模式的初始状态等等。

设备表达:

只要得到了设备的URL,就可以取得该设备表达的URL,然后可以将此表达纳入用户的本地浏览器上。这部分还包括与用户对话的界面,以及与用户进行会话的处理。



简要介绍下UPnP的工作流程:设备加入网络后通过设备 寻址就可自动获得IP地址,通过设备发现,控制点就可知道网络上存在哪些设备,通过设备描述控制点就可知道设备详细信息以及设备提供哪些服务,通过设备控制控制点可以使用设备的服务,通过设备事件设备就可以将其状态变化及时告诉给感兴趣的控制点,通过设备表达控制点可以用浏览器察看设备状态和控制设备。通过上述的六个方面,UPnP设备可以做到在“零配置”的前提下提供了联网设备之间的自动发现、自动声明、“直接”信息交换和互操作等功能,真正实现“设备即插即用”。
UPnP所用到的主要协议还有: SSDP(Simple Service Discovery Protocol 简单服务发现协议)、 GENA(Generic Event Notification Architecture 通用事件通知结构)、 SOAP(Simple Object Access Protocol 简单对象访问协议)、XML(Extensible Markup Language 可扩张 标记语言)。采用IP协议来保证UPnP独立与网络传输的物理介质,SOAP协议来保证UPnP设备具有互操作能力,XML来对设备和服务进行统一的描述,HTTP协议来进行UPnP设备的信息交互。采用这些现存的、广泛应用的协议能减少开发UPnP设备的工作量,使UPnP设备更好地融入现有网络。




       1、有Platinum的DMS应用层实现教程,jni库没有源码,可以自己编译:
       http://blog.csdn.net/lancees/article/details/9865411
       2、有比较好的UPNP介绍和DLNA的思路开发
       http://blog.csdn.net/bao_jinyu/article/category/1149905
       3、开发人员必须知道在github上选择好东西
       https://github.com/
       4、基于Cling开发的DLNA应用
       http://www.it165.net/pro/html/201303/4968.html
       5、基于CyberGarage库的dlna开发,海思的DLNA应用是用的此sdk
       http://luochao0913.blog.163.com/blog/static/6409386120133104208719/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值