细说DLNA(5)

话接上文书, 说到有控制点和设备两个概念。控制点英文称之为Control Point,简称为CP;设备称之为device。控制点不能称之为一个设备,它只具备浏览设备内容的能力,这一点是需要强调的。

 

我们用图形来描述UPnP的协议栈和UPnP设备交互过程:

 

 

         

                UPnP协议栈

 

 

UPnP设备交互过程

 

UPnP的应用场景包括哪些呢?

 

典型应用场景


随着PC成为网络的中心并提供日益丰富的介质和连接服务,在设备与PC相连之后,越来越多的应用将被开发出来。下面的例子只是其中很小的一部分:

智能家庭网络
许多智能家居环境使用了现存的家庭控制网络,例如家庭网络来控制和监控整个家居环境,比如灯光,安防和其他家庭设备。这些网络可以连接PC上,但是除了PC之外,不能被其他的设备存取。使用UPnP设备可以桥接这些网络成为一个网络,并提供用户更多设备存取家庭网络中的设备。在实现时也无须对家庭网络中的现有布线和设备进行昂贵的升级,只需要将设备变成UPnP设备并能够与控制点通讯并接受控制点的控制命令。
数字音视频文件管理
可以在PC和其他设备上播放的数字化音视频文件在近几年正在成指数级的增长。一个家庭中,可能有几台计算机或者其他设备用于保存这些文件。使用UPnP可以使这些分布在不同PC的文件统一管理。这些设备能被发现然后被其他控制点(比如个人电脑、UPnP接收器)控制,播放器可以通过家庭网络获得这些音视频文件并播放它们,用户可以在电视上欣赏这些音视频文件。
数字图片库
许多家庭使用数字相机拍照,或者将已有照片扫描保存,然后将这些照片上载到他们的计算机中保存。在计算机中对其进行分类,或者以幻灯片的形式进行显示。随着照片的增加,照片可能保存在多种设备或者多种介质上,比如光盘、硬盘、Flash卡。使用UPnP技术,图片库可以自己作为一个设备存在,并自动在网络上声明。这使得一个照片库可能临时为多个应用程序使用,例如可以进行幻灯片显示的同时,在电子像框、机顶盒和电视上进行显示。

 

UPnP设备包括哪些类型呢?

1. 基本设备。 这实际上是一个抽象设备,不提供任何服务。

2. UPnP AV设备。 这个为DLNA框架提供的设备类型,包含media server, media render。

3. UPnP Printer设备。提供打印服务。

4. 网关设备(IGD)。 这个应用非常广泛,很多路由器包含这个设备的服务。

5. UPnP Scanner设备。 提供扫描服务。

6. 数字摄像头。提供摄像头类似的服务。

7. 亮灯控制。这是UPnP设备协议的一个标准例子服务。

 

 下面的图包含了以上UPnP设备类型。

 

 

 我们主要看UPnP AV设备以及他们能提供哪些服务和配套的内部设备。

 

 在UPnP Device Architecture基础上,UPnP组织增加了UPnP AV Architecture,规定了音视频设备与控制点之间的交互过程和音视频设备提供的服务。

 

这个架构包含两种AV设备和一个控制点。一种AV设备为Media Server,保存各种音视频、图像等多媒体资料;另一种设备为Media Render,可以从Media Server获取多媒体数据并在本地进行播放。

 

下面的图描述了这三个组件(Media Server,Media Render,Control Point)的交互过程。

 

从这个图,我们还可以看出来Media Server提供的服务至少包含内容目录(Content Directoy)、连接管理(Connection Manager)和音视频传输(AVTransport),简称为CDS, CMS和AVT。其中CDS和CMS是必须提供的服务,而AVT则是可选的服务。

 

而Media Render提供的服务至少包含播放控制(Rendering Control)、连接管理(Connection Manager)和音视频传输(AVTransport),简称为RCS, CMS和AVT。其中RCS和CMS是必须提供的服务,而AVT则是可选的服务。

 

在这个架构中,还提供了这个三个组件在实际应用中交互模型,有兴趣的朋友可以进一步阅读。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-31
在Oracle中,PL/SQL是一种编程语言,允许开发人员编写存储过程、函数和触发器等程序对象。这些程序对象可以使用变量存储数据,其中包括全局变量和局部变量。 全局变量是定义在包中的变量,可以在包中的任何过程或函数中使用。在包中定义变量的语法如下: ``` CREATE OR REPLACE PACKAGE package_name AS variable_name datatype; ... END package_name; ``` 在这个包中,变量名为`variable_name`,数据类型为`datatype`。这个变量可以在这个包中的任何过程或函数中使用。 局部变量是在过程或函数中定义的变量,它们的作用域只在这个过程或函数中。在过程或函数中定义变量的语法如下: ``` CREATE OR REPLACE PROCEDURE procedure_name AS variable_name datatype; ... BEGIN ... END procedure_name; ``` 在这个过程或函数中,变量名为`variable_name`,数据类型为`datatype`。这个变量只能在这个过程或函数中使用,不能在其他过程或函数中使用。 全局变量和局部变量都可以存储不同类型的数据,例如数字、字符、日期等。在使用变量之前,需要先声明变量的类型和名称。在程序执行过程中,可以对变量进行赋值、修改等操作。 需要注意的是,在使用全局变量时,需要注意多个程序对象可能会同时访问同一个全局变量,因此需要考虑并发访问的问题。在使用局部变量时,需要注意变量的作用域和生命周期,确保变量只在需要的时候才会分配内存空间,并在不需要时及时释放内存空间,以避免资源的浪费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值