sonos - 添加节目电台
问题描述
我正在遵循“添加编程无线电”指南。几个月前我被困住了。并认为我会再试一次,因为 10.2 版本特别提到了它。
我正在使用 Android 上的 Sonos 应用程序和 Sonos ONE(gen1 10.3)进行测试
我无法让扬声器向 cloudqueue 无线电端点发出任何上下文请求。
当清单文件定义了无线电端点时。我收到错误“无法播放所选项目”(并且没有向 smapi 或 cloudqueue 服务器发出请求)
如果我删除无线电端点,它会调用 smapi 服务器。
这是我用来创建可以触发无线电端点的项目的肥皂响应。
我想知道 mediaMetadata 响应是否正确。
<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>1</ns2:count>
<ns2:total>1</ns2:total>
<ns2:mediaMetadata>
<ns2:id>prad:87</ns2:id>
<ns2:itemType>program</ns2:itemType>
<ns2:title>radio channel a</ns2:title>
</ns2:mediaMetadata>
</ns2:getMetadataResult>
</ns2:getMetadataResponse>
</SOAP-ENV:Body>
我已经设置了代理,因此我可以监控流量和有效负载。在示例服务器中播放示例曲目时,我确实看到了对报告端点的一些调用。但从未见过对无线电端点的单个呼叫。
下面是清单。它只是文档中内容的副本。
{
"schemaVersion": "1.0",
"endpoints": [
{
"type": "reporting",
"uri": "https://1222b45e.ngrok.io/flight/radioz/"
},{
"type": "radio",
"uri": "https://1222b45e.ngrok.io/flight/radiox/"
}
],
"presentationMap": {
"uri": "https://1222b45e.ngrok.io/flight/assets/presentationmap.xml",
"version": 2
},
"strings": {
"uri": "https://1222b45e.ngrok.io/flight/assets/strings.xml",
"version": 2
}
}
解决方案
这里有一些提示可能会有所帮助:
- 您的清单端点是什么?是 HTTPS 吗?如果没有,则播放器将不会下载它。但是,由于您收到对报告端点的调用,因此可能不是这样。
- 您的
radio
端点是什么样的?它是否以 a 结尾/
?如果没有,您将不会收到请求。这是正在解决的 Sonos 端的错误。
希望这可以帮助!
推荐阅读
- java - 重试 SSL 握手错误是否有意义?
- javascript - 当“contentType”为“false”时,使用 Ajax 从 Web 服务返回 JSON 而不是 XML
- javascript - 如何将特定按钮 id 传递给 jquery 点击事件?
- android - 从这些 jcodec 示例代码生成的 output.mp4 的绝对路径是什么?
- c# - c#内存泄漏非托管资源
- php - 在不循环 PHP 的情况下展开数组值
- javascript - 302 重定向在使用 Google Workbox 构建的 Service Worker 中不起作用
- c# - 该类型出现在单个 LINQ to Entities 查询中的两个结构不兼容的初始化中
- c# - 相机上的 C# 紧凑代码,这可能吗?
- c# - 将数据从设备套接字实时推送到 SAP 的策略