我正在尝试建立一个用于控制音频的uPnP控制点,我正在使用Java库。要浏览服务器上的音乐需要ContentDirectory服务,cling提供了api来访问它,但没有提供任何类来表示各种动作和参数,需要我编写大量的样板代码,我想知道这样的库存在吗?
例如,我为Content Directory
的Browse操作创建了一个Browse类import org.fourthline.cling.model.meta.Action;
import org.fourthline.cling.model.types.UnsignedIntegerFourBytes;
public class Browse extends AbstractActionAndInvocation
{
//INPUT
public static final String OBJECT_ID = "ObjectID";
public static final String BROWSE_FLAG = "BrowseFlag";
public static final String FILTER = "Filter";
public static final String STARTING_INDEX = "StartingIndex";
public static final String REQUESTED_COUNMT = "RequestedCount";
public void setObjectID(String objectID)
{
actionInvocation.setInput(OBJECT_ID, objectID);
}
public void setBrowseFlag(BrowseFlag browseFlag)
{
actionInvocation.setInput(BROWSE_FLAG, browseFlag.getParameterName());
}
public void setFilter(String filter)
{
actionInvocation.setInput(FILTER, filter);
}
public void setStartingIndex(int startingIndex)
{
actionInvocation.setInput(STARTING_INDEX, new UnsignedIntegerFourBytes(startingIndex));
}
public void setRequestedCount(int requestCount)
{
actionInvocation.setInput(REQUESTED_COUNMT, new UnsignedIntegerFourBytes(requestCount));
}
public Browse(Action action)
{
super(action);
}
}
既然ContentDirectory
只有一个预定义的动作列表,那么这些动作在某个地方不存在似乎很奇怪?
cl_support模块中有一些有用的类,比如主服务的回调类
如
org.fourthline.cling.support.contentdirectory.callback.Browse.java;
然而,我发现它们的用处有限,更多的是作为一个示例实现,而不是作为一个可以使用的。