Browse 方法是 ContentDirectory  Service中的常用方法,它的主要参数含义在这里总结一下,以防以后搞混;

BrowseFlag

 

 

 

 1)是输入参数

 

2)  BrowseMetadata:仅仅返回该OBJECT的所有属性。为BrowseDirectChildren返回该OBJECT child节点OBJECT的属性。

 

Filter

1)是输入参数

2)  过滤器,规定一些返回结果的属性,如果可以得到这些属性的话,应该返回Filter中的属性。

例如 Filter的值如下:

dc:title,dc:date,@childCount,res,res@resolution,upnp:album,upnp:genre,upnp:albumArtURI,upnp:albumArtURI@dlna:profileID,dc:creator,res@size,res@duration,res@bitrate,res@protocolInfo,upnp:class

输出的结果如下:

 xmlns:sec="http://www.sec.co.kr/dlna"

 xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"

 xmlns:dc="http://purl.org/dc/elements/1.1/"

 xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/">

  object.container

  Shared Contents

   5

   5

   0   //文件夹个数

   0 //  图片个数

    0  // 音频个数

    0   //  视频个数

 

object.container

Shared Folder

14611

2

8

0

0

0

2

2

14653

 

 

 NumberReturned , TotalMatchesStartingIndexRequestedCount说明

1) StartingIndexRequestedCount为输入参数,NumberReturnedTotalMatches为输出参数。

2) 在正常情况下:

a)      一般情况下RequestedCount = 0StartingIndex =0,下面不加特殊说明也就是如此设置。

RequestedCount设为0表示返回的NumberReturned不受限制,是多少返回多少。StartingIndex设为0,表示从第一个OBJECTList所有的OBJECT 信息。

b)      TotalMatches返回的是实际的OBJECT个数。如果BrowseFlag是“BrowseDirectChildren”,

TotalMatches返回的就是当前OBJECTChild Object数目。如果当前OBJECT下一级目录有10OBJECT, TotalMatches = 10;如果BrowseFlagBrowseMetadata”,那么TotalMatches恒为1

c)       StartingIndex表示Resopnse包中第一个OBJECT的序号,还以上面为例,如果BrowseFlag是“BrowseDirectChildren”,StartingIndex  = 1,那么Response包中就没有第一个OBJECT的信息,NumberReturned =  9TotalMatches = 10

d)      RequestedCount为最多可返回的OBJECT个数,即NumberReturned <= RequestedCount,

c)中例子,如果RequestedCount5,那么NumberReturned也为5,如果RequestedCount大于实际的OBJECT个数,那么NumberReturned为实际数目。

3) 在异常情况下:

如果在有些特殊情况下,比如文件数过多,一时无法计算出NumberReturned个数,但是已经找到匹配的Object,这时 NumberReturned个数为0TotalMatch表示返回的Object个数;如果没有找到匹配的Object,返回720错误。