Чего я пытаюсь достичь
Я хочу отобразить тот же пункт меню «Воспроизвести все», который я получаю при перечислении дорожек (меню с itemType=trackList
) для меню других itemType
, например. Плейлисты. Это возможно?
Так, например, представляя каждое меню в виде вложенного списка, я хочу:
- Collection 1
- Play All <---- I don't get this one!
- Playlist 1
- Play All <-- I get this
- Трек 1
- Трек 2
- ...
- Playlist 2
- Play All <-- I get this
- Трек 1
- Трек 1
- ...
Ничего страшного, если такое поведение невозможно, но я просто хотел перепроверить.
Что говорят документы
Согласно документации Sonos API, вы можете сделать другие типы элементов доступными для воспроизведения, установив canPlay=true
. Фактически, в нем конкретно упоминается мой вариант использования:
Флаг canPlay используется для указания того, что коллекция может быть поставлена в очередь для воспроизведения целиком. Для этого клиент вызовет getMetadata, передав логический параметр «recursive», установленный в true. Это вернет сглаженный список всех элементов mediaItem в коллекции. Например, "canPlay" может быть верным для коллекции, представляющей плейлист треков...
Когда я устанавливаю canPlay=true
, я могу нажать и удерживать коллекцию в предыдущем меню, и у меня появляется всплывающее меню, которое позволяет мне воспроизводить все таким образом, но у меня нет реального значка «Воспроизвести все» в последующем меню. . Так задумано или есть способ отобразить значок «Воспроизвести все»?
На странице типов элементов SMAPI указано:
mediaCollection of itemType trackList с canEnumerate = true активирует узел «Все дорожки», когда вы просматриваете контейнер, как показано ниже.
Это единственный 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>