我想要显示相同的"全部播放"我在列出其他itemType=trackList
的菜单时的曲目(itemType
的菜单)时获得的菜单项,例如播放列表。这可能吗?
因此,例如,将每个菜单表示为嵌套列表,我想:
如果这种行为不可行,那很好,但我只想仔细检查。
根据Sonos API docs,您可以通过设置canPlay=true
来播放其他itemTypes。事实上,它特别提到了我的用例:
canPlay标志用于指示集合可以排队等待整个播放。为了实现这一点,客户端将调用getMetadata传递一个布尔参数“recursive”设置为true。这将返回集合中所有mediaItem元素的展平列表。 例如,“canPlay”可能适用于代表曲目播放列表的集合 ...
当我设置canPlay=true
时,我可以按住前一个菜单中的收藏夹,并有一个菜单弹出窗口,让我按照这种方式播放所有内容,但我不会&# 39;得到一个真实的"全部播放"后续菜单中的图标。这是有意的,还是有任何方式来显示"全部播放"图标?
具有canEnumerate = true的itemType trackList的mediaCollection将启用" All Tracks"一旦浏览到容器,就会显示节点,如下所示
这是唯一可用的itemType
吗?
getMetadata
回复如果它有用,请点击此处getMetadata
回复:
getMetadata
调用显示包含集合的菜单:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
<getMetadataResult>
<index>0</index>
<count>10</count>
<total>10</total>
...
<mediaCollection>
<id>collections:134</id>
<itemType>collection</itemType>
<displayType>standardView</displayType>
<title>Collection 1</title>
<summary>Collection 1 Summary</summary>
<canPlay>true</canPlay>
<albumArtURI>https://path/to/album_art.jpg</albumArtURI>
</mediaCollection>
...
</getMetadataResult>
</getMetadataResponse>
</soap:Body>
</soap:Envelope>
getMetadata
来自列出收藏夹播放列表的电话:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
<getMetadataResult>
<index>0</index>
<count>1</count>
<total>1</total>
<mediaCollection>
<id>collections:134:playlists:506</id>
<itemType>trackList</itemType>
<displayType>standardView</displayType>
<title>Playlist 1</title>
<summary>Playlist 1 summary</summary>
<canPlay>true</canPlay>
<albumArtURI>http://path/to/album_art.jpg</albumArtURI>
</mediaCollection>
</getMetadataResult>
</getMetadataResponse>
</soap:Body>
</soap:Envelope>
答案 0 :(得分:0)
听起来你想要显示的是一组曲目顶部的“All Songs”节点。正如您所提到的,将“canPlay”设置为true将导致显示“Play All”节点,并且无论容器类型如何,这都适用于任何mediaCollection。同样,将“canEnumerate”设置为true应该会导致“All Tracks”节点显示在任何mediaCollection的容器顶部。遗憾的是,无法在容器顶部显示“全部播放”按钮。