3

ユーザーのプレイリストからトラックを削除しようとすると、コントローラーはメソッドdeleteContainerで SOAP リクエストを送信します。

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <credentials xmlns="http://www.sonos.com/Services/1.1">
      <sessionId>574ae2c7e83b03.16748534_6f1bc18ac2878c101d2f28a0a4cdf2a8</sessionId>
      <deviceId>B8-E9-37-EF-29-1E:8</deviceId>
      <deviceProvider>Sonos</deviceProvider>
    </credentials>
  </s:Header>
  <s:Body>
    <deleteContainer xmlns="http://www.sonos.com/Services/1.1">
      <id>TRACK:272228:13306</id>
    </deleteContainer>
  </s:Body>
</s:Envelope>

しかし、メソッドremoveFromContainerがあることがわかります。このメソッドは、プレイリストからトラックを削除するために使用する必要があると思います。

Android アプリと MacOS Sonos アプリでこの問題が発生します。そして、プレイリストではなくトラックを削除しています。プレイリストを削除するときは、同じメソッドdeleteContainerを呼び出しますが、正しい ID を使用します (例: PLAYLISTS:PLAYLIST:23952)。

私が間違っている?メソッドremoveFromContainerが使用されるのはどの場合ですか?

プレイリストのルート セクション

リクエスト

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <credentials xmlns="http://www.sonos.com/Services/1.1">
      <sessionId>574dd9f69e8ad1.86333620_6f1bc18ac2878c101d2f28a0a4cdf2a8</sessionId>
      <deviceId>B8-E9-37-EF-29-1E:8</deviceId>
      <deviceProvider>Sonos</deviceProvider>
    </credentials>
  </s:Header>
  <s:Body>
    <getMetadata xmlns="http://www.sonos.com/Services/1.1">
      <id>playlists</id>
      <index>0</index>
      <count>100</count>
    </getMetadata>
  </s:Body>
</s:Envelope>

応答

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="http://www.sonos.com/Services/1.1">
    <SOAP-ENV:Body>
        <ns1:getMetadataResponse>
            <ns1:getMetadataResult>
                <ns1:index>0</ns1:index>
                <ns1:count>2</ns1:count>
                <ns1:total>2</ns1:total>
                <ns1:mediaCollection readOnly="false" userContent="true" renameable="true">
                    <ns1:id>PLAYLISTS:PLAYLIST:23952</ns1:id>
                    <ns1:itemType>favorite</ns1:itemType>
                    <ns1:displayType>list</ns1:displayType>
                    <ns1:title>Another playlist</ns1:title>
                    <ns1:summary>39 songs 18486</ns1:summary>
                    <ns1:canPlay>true</ns1:canPlay>
                    <ns1:canEnumerate>true</ns1:canEnumerate>
                </ns1:mediaCollection>
                <ns1:mediaCollection readOnly="false" userContent="true" renameable="true">
                    <ns1:id>PLAYLISTS:PLAYLIST:28331</ns1:id>
                    <ns1:itemType>favorite</ns1:itemType>
                    <ns1:displayType>list</ns1:displayType>
                    <ns1:title>Some playlist</ns1:title>
                    <ns1:summary>21 songs 10454</ns1:summary>
                    <ns1:canPlay>true</ns1:canPlay>
                    <ns1:canEnumerate>true</ns1:canEnumerate>
                </ns1:mediaCollection>
            </ns1:getMetadataResult>
        </ns1:getMetadataResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

プレイリスト アイテムを取得する

リクエスト

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <credentials xmlns="http://www.sonos.com/Services/1.1">
      <sessionId>574dd9f69e8ad1.86333620_6f1bc18ac2878c101d2f28a0a4cdf2a8</sessionId>
      <deviceId>B8-E9-37-EF-29-1E:8</deviceId>
      <deviceProvider>Sonos</deviceProvider>
    </credentials>
  </s:Header>
  <s:Body>
    <getMetadata xmlns="http://www.sonos.com/Services/1.1">
      <id>PLAYLISTS:PLAYLIST:28331</id>
      <index>0</index>
      <count>100</count>
    </getMetadata>
  </s:Body>
</s:Envelope>

応答

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="http://www.sonos.com/Services/1.1">
    <SOAP-ENV:Body>
        <ns1:getMetadataResponse>
            <ns1:getMetadataResult>
                <ns1:index>0</ns1:index>
                <ns1:count>21</ns1:count>
                <ns1:total>21</ns1:total>
                <ns1:mediaMetadata>
                    <ns1:id>TRACK:273257:14098</ns1:id>
                    <ns1:itemType>track</ns1:itemType>
                    <ns1:displayType></ns1:displayType>
                    <ns1:title>Dark Star</ns1:title>
                    <ns1:summary>Phil Lesh &amp; Friends</ns1:summary>
                    <ns1:mimeType>audio/mp3</ns1:mimeType>
                    <ns1:trackMetadata>
                        <ns1:artist>Phil Lesh &amp; Friends</ns1:artist>
                        <ns1:duration>1030</ns1:duration>
                        <ns1:rating>0</ns1:rating>
                        <ns1:albumArtURI>http://www.livedownloads.com/images/shows/phil160318_02.jpg</ns1:albumArtURI>
                        <ns1:canPlay>true</ns1:canPlay>
                        <ns1:canSkip>true</ns1:canSkip>
                    </ns1:trackMetadata>
                </ns1:mediaMetadata>
                [other items]
            </ns1:getMetadataResult>
        </ns1:getMetadataResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

プレイリストからのアイテム削除時

リクエスト

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <credentials xmlns="http://www.sonos.com/Services/1.1">
      <sessionId>574dd9f69e8ad1.86333620_6f1bc18ac2878c101d2f28a0a4cdf2a8</sessionId>
      <deviceId>B8-E9-37-EF-29-1E:8</deviceId>
      <deviceProvider>Sonos</deviceProvider>
    </credentials>
  </s:Header>
  <s:Body>
    <deleteContainer xmlns="http://www.sonos.com/Services/1.1">
      <id>TRACK:263512:12867</id>
    </deleteContainer>
  </s:Body>
</s:Envelope>

環境

MacOS Sonos アプリ[バージョン情報] ダイアログから:

Version: 6.2.2
Build: 31927221
Sonos ID: 115034936

Sonos デバイス情報:

PLAY:1: Living Room
Serial Number: B8-E9-37-EF-29-1E:8
Version: 6.2 (build 31926010)
Hardware Version: 1.8.3.7-1
IP Address: 192.168.0.108
WM: 1
OTP: 

Android Sonos アプリから

Sonos ID: 115034936
Version: 6.2.2 (build 31927151)

http://192.168.0.108:1400/status/VERSION

contents of /VERSION
31.9-26010

表示タイプ pmap

<DisplayType id="list">
    <DisplayMode>LIST</DisplayMode>
    <ItemThumbnails source="albumArtUri"/>
    <Lines>
        <Line token="title"/>
        <Line token="summary"/>
    </Lines>
</DisplayType>
4

1 に答える 1

3

プレイリスト編集が設計された方法では、コントローラーは個々のプレイリスト コンテナーが itemType "playlist" であると想定します。上記の動作を修正する方法は、個々のプレイリスト コンテナのそれぞれを itemType "playlist" に設定することです。

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="http://www.sonos.com/Services/1.1">
  <SOAP-ENV:Body>
    <ns1:getMetadataResponse>
        <ns1:getMetadataResult>
            <ns1:index>0</ns1:index>
            <ns1:count>2</ns1:count>
            <ns1:total>2</ns1:total>
            <ns1:mediaCollection readOnly="false" userContent="true" renameable="true">
                <ns1:id>PLAYLISTS:PLAYLIST:23952</ns1:id>
                <ns1:itemType>playlist</ns1:itemType>
                <ns1:displayType>list</ns1:displayType>
                <ns1:title>Another playlist</ns1:title>
                <ns1:summary>39 songs 18486</ns1:summary>
                <ns1:canPlay>true</ns1:canPlay>
                <ns1:canEnumerate>true</ns1:canEnumerate>
            </ns1:mediaCollection>
            <ns1:mediaCollection readOnly="false" userContent="true" renameable="true">
                <ns1:id>PLAYLISTS:PLAYLIST:28331</ns1:id>
                <ns1:itemType>playlist</ns1:itemType>
                <ns1:displayType>list</ns1:displayType>
                <ns1:title>Some playlist</ns1:title>
                <ns1:summary>21 songs 10454</ns1:summary>
                <ns1:canPlay>true</ns1:canPlay>
                <ns1:canEnumerate>true</ns1:canEnumerate>
            </ns1:mediaCollection>
        </ns1:getMetadataResult>
    </ns1:getMetadataResponse>
</SOAP-ENV:Body>

親コンテナには「favorites」の itemType があるため、子コンテナもお気に入りの動作を継承し、getLastUpdate 呼び出しで個々のプレイリストのコンテンツを更新することができます。また、mediaCollection 内に containsFavorite ノードを含め、個々のプレイリストの値を true に設定することもできます (containsFavorite に関するドキュメントを参照してください: http://musicpartners.sonos.com/node/83 )。

個々のプレイリスト コンテナに「playlist」以外の itemType が使用された場合の動作については、内部で調査します。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2016-06-02T20:32:53.863 に答える