QPlay 协议框架
QPlay设备描述
目前QPlay最新规范为QPlay 2.0,QPlay所有的功能必须遵循UPnP结构体系。在QPlay规范中,QQ音乐应用充当控制点(Control Point),第三方设备充当媒体渲染器(Media Render)。而媒体渲染器必须实现至少四种服务:音视频传输(AVTransport),播放控制(RenderingControl),连接管理(ConnectionManager)三个标准服务;最后一个为QPlay服务,是QPlay规范最核心的服务,包含QPlay播放列表功能,QPlay认证功能,QPlay设置功能等。该规范定义了QPlay设备的最基础的服务,相应的动作和状态变量,第三方设备都应该支持。
在QQ音乐程序启动后
,将广播发送搜索信息查找设备类型为“urn:schemas-upnp-org:device:MediaRenderer”的设备。当QQ音乐发现设备可用时,将读取描述文件。UPnP的设备描述包含几个信息:设备制造商信息、所有的嵌入式设备定义和设备URL,所有的服务列表和控制URL(controlURL)、事件URL(eventURL)等。
QPlay设备还需要一个标签声明其支持QPlay功能:
<qq:X_QPlay_SoftwareCapability xmlns:qq="http://www.tencent.com">QPlay:VersionNumber</qq:X_QPlay_SoftwareCapability>
其中VersionNumber(版本号)描述了设备支持的QPlay版本,版本号的值可以是1或者2,其中的区别见表。
QPlay各版本功能
Services | QPlay:1 | QPlay:2 |
---|---|---|
AVTranpsort | √ | √ |
RenderingControl | √ | √ |
ConnectionManager | √ | √ |
QPlay | N/A | √ |
- AVTransport 服务
该服务必须符合UPnP设备架构1.0版本(UPnP Device Architecture Version 1.0)。QPlay仅支持部分UPnP音视频传输服务(AVTransport)。该服务主要实现音频流的传输控制。
AVTransport服务在设备描述中的模板:
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:service:AVTransport</serviceId>
<controlURL>_urn-schemas-upnp-org-service-AVTransport_control</controlURL>
<eventSubURL>_urn-schemas-upnp-org-service-AVTransport_event</eventSubURL>
</