Sonos:创建在完成播放列表后自动结束的 playbackSession。不重复

Sonos: Create playbackSession that automatically ends after finishing the playlist. No repeat

当我创建 playbackSession 并使用 loadStreamUrl 加载 track/playlist 时,此播放列表会在播放完最后一首歌曲后从头开始重复播放。相反,我希望它在最后停止。

我试图找到一个类似于playOnCompleteloadStreamUrl的有效负载)的属性,它在缓冲曲目后自动开始播放,只是为了在曲目播放后结束播放。

我也试过用playback->setPlayModes禁止重复,但是这个被忽略了

{
    "playModes": {
       "repeat": false
    }
  }

我知道这可以通过设置事件回调和处理 playbackStatus 事件来实现,但我正在寻找一个简单的 "fire-and-forget" 解决方案。

loadStreamUrl 命令用于流式广播。由于您正在播放播放列表,因此您应该使用 loadCloudQueue

loadCloudQueuemediaUrl 一起用于 track instead of a SMAPI MusicObjectId if you don't want to set up a SMAPI server. See loadCloudQueue and Play audio (cloud queue) 以获得详细信息。

或者,您可以尝试未记录的 loadQueue 命令。 loadQueueloadCloudQueue 类似,但它不需要云队列。要在没有云队列的情况下播放曲目,请发送以下调用:

  1. createSession
  2. loadQueue(如下所述)
  3. skipToItem

加载队列

使用自定义元数据和播放策略初始化 Sonos 队列。将此命令与 skipToItem 一起使用可向播放器发送曲目。播放器在曲目结束时停止播放。

参数

姓名 |类型 |描述

metadata | container |描述队列的容器元数据。这可以是已编排的广播电台、专辑、播放列表等。

policies | playbackPolicy |会话的播放策略。

样品请求

POST [base URL]/groups/{groupId}/playbackSession
{...}

POST [base URL]/playbackSessions/{sessionId}/playbackSession/queue
{...}

POST [base URL]/playbackSessions/{sessionId}/playbackSession/skipToItem
{...}

请参阅 Control API list 了解基础 URL。