尝试在Sonos上配置音乐服务。我一直在遵循Sonos编程收音机指南。
https://developer.sonos.com/build/content-service-add-features/add-programmed-radio/
但不确定要使播放器使用清单中声明的端点,smapi服务器应该返回什么。
这将是此图中的第三步。
https://developer-assets.ws.sonos.com/doc-assets/prog_radio_seq10_review.png
我尝试将radio添加为itemType并使用某些现有类型,但到目前为止,我还没有让播放器向云队列服务器发出任何请求。
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:getMetadataResponse
xmlns:ns2="http://www.sonos.com/Services/1.1">
<ns2:getMetadataResult>
<ns2:index>0</ns2:index>
<ns2:count>2</ns2:count>
<ns2:total>2</ns2:total>
<ns2:mediaCollection>
<ns2:id>smapicontainer:31</ns2:id>
<ns2:itemType>radio</ns2:itemType>
<ns2:title>radio collection</ns2:title>
</ns2:mediaCollection>
<ns2:mediaMetadata>
<ns2:id>smapicontainer:32</ns2:id>
<ns2:itemType>radio</ns2:itemType>
<ns2:title>radio metadata</ns2:title>
</ns2:mediaMetadata>
</ns2:getMetadataResult>
</ns2:getMetadataResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
期望看到一些针对无线电类型的端点呼叫。在清单中声明。清单似乎配置正确,因为在播放示例音轨时确实会调用/ radio / timePlayed。
{
"schemaVersion": "1.0",
"endpoints": [
{
"type": "radio",
"uri": "https://13467fb8.ngrok.io/flight/radio"
},{
"type": "reporting",
"uri": "https://13467fb8.ngrok.io/flight/radio"
}
],
"presentationMap": {
"uri": "https://13467fb8.ngrok.io/flight/assets/presentationmap.xml",
"version": 2
},
"strings": {
"uri": "https://13467fb8.ngrok.io/flight/assets/strings.xml",
"version": 2
}
}
使用具有itemType程序的mediaMetaData更新了smapi响应。似乎仍然缺少某些东西,因为清单“ radio”端点确实阻止了对smapi服务器的调用。但是它仍然不会向与无线电关联的端点发出任何请求。选择项目时,我收到“无法播放所选项目”的警报。
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:getMetadataResponse
xmlns:ns2="http://www.sonos.com/Services/1.1">
<ns2:getMetadataResult>
<ns2:index>0</ns2:index>
<ns2:count>3</ns2:count>
<ns2:total>3</ns2:total>
<ns2:mediaMetadata>
<ns2:id>prad:32</ns2:id>
<ns2:itemType>program</ns2:itemType>
<ns2:title>radio channel a</ns2:title>
</ns2:mediaMetadata>
<ns2:mediaMetadata>
<ns2:id>smapicontainer:33</ns2:id>
<ns2:itemType>program</ns2:itemType>
<ns2:title>radio channel b</ns2:title>
</ns2:mediaMetadata>
<ns2:mediaMetadata>
<ns2:id>radio:34</ns2:id>
<ns2:itemType>program</ns2:itemType>
<ns2:title>radio channel c</ns2:title>
</ns2:mediaMetadata>
</ns2:getMetadataResult>
</ns2:getMetadataResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
以下是我可以生成到清单文件中端点的唯一流量。 没有无线电类型,但是如果我播放smapi示例服务器中包含的示例轨道之一,则确实可以获得一些报告。 image of traffic to the endpoint
答案 0 :(得分:0)
您应该为mediaMetadata
返回getMetadataResponse
对象的数组,其中itemType
的{{1}}。参见https://musicpartners.sonos.com/node/286
答案 1 :(得分:0)
您需要在无线电和报告端点的某处添加版本号。有关详细信息,请参见Sonos Music API service reporting and manifest file。