DLNA&UPnP开发笔记(2)

简介:
+关注继续查看

1.  UPnP协议组成


UPnP协议中,定义了两个主要的组件,一个是设备(Device),一个是控制点(Control Point)。这就是为什么很多UPnP协议栈的SDK的接口代码一般都主要由Device和Control Point构成。设备是在网络中可见的对象,而控制点在网络中不可见。


一个UPnP的设备(Device)是不能直接访问和控制另一个UPnP的设备(Device)的,对设备的访问和控制都必须通过控制点(Control Point)来代为完成。而控制点对设备的控制则主要是由设备定义的“服务”(Service)来实现。


设备(Device)需要向网络中广播自己的信息,并提供设备描述和服务(Service)描述,并发送设备事件消息.


控制点(Control Point)则是搜索设备,并使用其提供的服务(Service)访问和控制设备,同时监听设备事件消息。


2. 典型的UPnP AV应用架构


wKiom1U45h_x1rP4AAESqPv2zVk980.jpg


如图所示是一种典型的UPnP AV应用架构,它来自《UPnP-av-AVArchitecture》。在一个典型的UPnP应用中,有三个主体,一个服务器(MediaServer),一个播放器(MediaRender),以及一个控制点(Control Point)


服务器(MediaServer)主要负责提供多媒体文件的浏览和控制。

播放器(MediaRender)主要负责提供播放和渲染。

控制点(Control Point)则控制整个播放过程。


它们三个在物理上可以是同一个设备,当然,也可以在不同的设备上。


对应到UPnP协议组件的话,“MediaServer”和“MediaRnederer”都属于UPnP的Device。


“ContentDirectory”、“ConnectionManager”、“AVTransport”、“RenderingControl”这些都属于UPnP设备所提供的服务(Service),通过这些服务描述,Control Point就知道该如何访问和控制设备了。


3.  UPnP的设备描述和服务描述


UPnP的设备(Device)是通过广播包来通知局域网中的控制点自己的设备信息和服务的,而这些设备信息和服务都必须根据UPnP协议规定的XML文档格式来编写,UPnP提供了标准的模板可以参考,具体的文档地址:


http://upnp.org/sdcps-and-certification/standards/sdcps/


由这些文档我们可以看到,UPnP官网为我们定义了12种设备,在每种设备的文档中详细地定义了设备描述XML如何编写,定义了每种设备需要实现哪些服务,每种服务的XML文档如何编写。


到这里,我们其实可以看到,实现一个上述的UPnP AV应用也并没有那么可怕,一切都是有章可循的,我们需要做的就是熟读协议所定义了一系列文档。



本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1637727,如需转载请自行联系原作者

相关文章
|
4月前
|
编解码 API 开发者
HarmonyOS学习路之开发篇—多媒体开发(音频开发 二)
音频采集的主要工作是通过输入设备将声音采集并转码为音频数据,同时对采集任务进行管理。
|
4月前
|
编解码 算法 内存技术
HarmonyOS学习路之开发篇—多媒体开发(音频开发 一)
HarmonyOS音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音频采集、音量管理和短音播放等。
|
Unix Linux 数据安全/隐私保护
超好用!5款完全免费、支持全平台的笔记软件
好记忆不如一个烂笔头,对于这句话,我深以为然。 我觉得养成做笔记的习惯,对于工作和学习都能够提供很大的帮助。
超好用!5款完全免费、支持全平台的笔记软件
|
小程序 开发工具 iOS开发
[iOS初级教程之一]社会化分享实践(三)
[iOS初级教程之一]社会化分享实践
657 0
[iOS初级教程之一]社会化分享实践(三)
|
开发工具 iOS开发 开发者
[iOS初级教程之一]社会化分享实践(二)
[iOS初级教程之一]社会化分享实践
129 0
[iOS初级教程之一]社会化分享实践(二)
[iOS初级教程之一]社会化分享实践(一)
[iOS初级教程之一]社会化分享实践
164 0
[iOS初级教程之一]社会化分享实践(一)
|
开发工具 Android开发 智能硬件
相关产品
云迁移中心
推荐文章
更多