0

この問題を回避するために追加のロジックを使用していますが、返さreportPlaySecondsれる値に関係なく呼び出されることに気付きました。interval

結果のドキュメントには次のように記載されています。

interval string(128) - 次のレポートまでに経過する秒数。注: 値 0 は、そのトラックの再生開始後にレポートを発行しないことを示します。

これはリクエストリクエストの例です:

<?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:Header>
    <ns1:credentials>
        <ns1:deviceId>00-01-02-0A-0B-0C</ns1:deviceId>
        <ns1:deviceProvider>Sonos</ns1:deviceProvider>
        <ns1:sessionId>303-TEMP</ns1:sessionId>
    </ns1:credentials>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
    <ns1:reportPlaySeconds>
        <ns1:id>track_id</ns1:id>
        <ns1:seconds>0</ns1:seconds>
    </ns1:reportPlaySeconds>
</SOAP-ENV:Body>
</SOAP-ENV: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:reportPlaySecondsResponse>
        <ns1:reportPlaySecondsResult>
            <ns1:interval>0</ns1:interval>
        </ns1:reportPlaySecondsResult>
    </ns1:reportPlaySecondsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ドキュメントを正しく理解していれば、<ns1:interval>0</ns1:interval>手段を返すことreportPlaySecondsは再度呼び出されるべきではありません。setPlayedSecondsより詳細なレポートを計算するためにも使用しているため、追加のreportPlaySeconds呼び出しは不要です。

何か案は?

4

1 に答える 1

1

intervalドキュメントには、ユーザー (プロバイダー) は に戻ってレポート間隔を変更できると記載されていreportPlaySecondsResultますが、この機能は最新リリース (バージョン 5.4、ビルド 29.5-91030、2015 年 7 月 13 日リリース) のファームウェアでは有効になっていません。

ご覧のとおり、 で返される値に関係なく、プレイヤーは一定の間隔でレポートを続けますreportPlaySecondsResult

更新のためにドキュメンテーション チームにチケットをオープンしました。

于 2015-07-21T15:50:36.700 に答える